在asp.net中遇到json问题mvc

时间:2016-09-05 06:28:39

标签: c# asp.net json asp.net-mvc

在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请求并填充所需的值,第二个是保存按钮,我真的不知道如何处理单个表单中的两个按钮

提前感谢您提供任何提示

1 个答案:

答案 0 :(得分:0)

提供的JSON在语法上是有效的。声明CustomerModels对象时,请确保将tva_la_incasare属性声明为数组或列表,如下所示:

public List<object> tva_la_incasare { get; set; }