在MVC应用程序中,我从给定的服务器检索json字符串。 我为了测试目的检索所有的拳头json与Chrome,我得到了这个
{
ultima_prelucrare: "2013-11-25",
ultima_declaratie: "2013-11-25",
tva_la_incasare: [ ],
tva: null,
telefon: "0745040840",
stare: "INREGISTRAT din data 04 Iulie 2007",
radiata: false,
numar_reg_com: "J40/12836/2007",
meta: {
updated_at: "2016-08-30T19:05:29.922418",
last_changed_at: null
},
judet: "Municipiul București",
impozit_profit: null,
impozit_micro: "2011-01-01",
fax: null,
denumire: "Infosystems4u S.R.L.",
cod_postal: "61954",
cif: "22052442",
adresa: "Aleea Baiut, 9a, Bucuresti",
act_autorizare: null,
accize: null
}
并且没问题。 现在回到我的应用程序。我已经有一个描述这种结构的模型。我有一个关于在我的应用程序中添加此字段的客户的视图。 在我的场景中,我希望在为" cif"提供价值之后字段,然后对给定的服务器发出Web请求并检索上面的json。 检索到json,但是当我尝试使用newtonsoft进行反序列化时,会引发一个关于" ["字符。在这里,我注意到[不是在引号字符之间,但是它是如何来自服务器的。 很简单,我的代码就像(现在代码只是在控制器中的默认操作中,但我可以稍后解决):
//call openapi.ro
string CompanyCUI = "22052442";
// Create a new 'Uri' object with the specified Company ID string.
Uri myUri = new Uri("https://api.openapi.ro/api/companies/"+CompanyCUI+".json");
// Create a new request to the above mentioned URL.
WebRequest myWebRequest = WebRequest.Create(myUri);
//Add the required header to request
myWebRequest.Headers.Add("x-api-key", "8P4RP_kwn71Nt8VG7boFmQb_7NsihyQxT_x7JGcGQkvPdXZH2Q");
// Assign the response object of 'WebRequest' to a 'WebResponse' variable.
WebResponse myWebResponse = myWebRequest.GetResponse();
// Read the response into a stream
var dataStream = myWebResponse.GetResponseStream();
var reader = new StreamReader(dataStream);
var jsonResultString = reader.ReadToEnd();
// Deserialize
var CompanyInfoData = Newtonsoft.Json.JsonConvert.DeserializeObject<CustomerModels>(jsonResultString);
//Feed the model with retrieved data
//...
//Save all
//...
现在假设我发现json内容可能出现问题,并且最后如何进一步说明,下一步是在用户点击表单的“保存”按钮之前,使用检索到的值预先填充表单中的编辑框控件。困扰我的是我在表单中需要两个按钮,一个用于调用Web请求并填充所需的值,第二个是保存按钮,我真的不知道如何处理单个表单中的两个按钮
提前感谢您提供任何提示
答案 0 :(得分:0)
提供的JSON在语法上是有效的。声明CustomerModels
对象时,请确保将tva_la_incasare
属性声明为数组或列表,如下所示:
public List<object> tva_la_incasare { get; set; }