我尝试过在stackoverflow上找到的各种示例以及www.newtonsoft.com的官方文档。我正在努力反序列化/解析这个
{
"@odata.context": "http://localhost/WebApi/getDataCompanyData",
"value": [
{
"ID": "001",
"Name": "Sample Company"
}
]
}
这是一个数组
{
"@odata.context": "http://localhost/WebApi/getDataCustomerData",
"value": [
{
"CustomerNumber": "A001",
"ShortName": "Customer A"
},
{
"CustomerNumber": "B001",
"ShortName": "Customer B"
}
]
}
我尝试使用http://json2csharp.com/生成的类,我甚至尝试过像这样简单的事情
dynamic jsonstring = IO.File.ReadAllText("DATA\\cprofile.json");
dynamic companydata = Json.Linq.JObject.Parse(jsonstring);
dynamic CustomerNumber = companydata("CustomerNumber");
Interaction.MsgBox(CustomerNumber);
之前我还没有使用过这个JSON结构。任何人都有处理这种JSON结构的建议吗?
注意:这是winforms
答案 0 :(得分:1)
您可以考虑将JsonProperty
与Json.Net一起使用
例如,带有数组的第二个片段
public class Value {
public string CustomerNumber { get; set; }
public string ShortName { get; set; }
}
public class RootObject {
[JsonProperty("@odata.context")]
public string OdataContext { get; set; }
public IList<Value> value { get; set; }
}
从那里开始就按预期反序列化JSON。
var model = JsonConvert.DeserializeObject<RootObject>(json);
var context = model.OdataContext;
http://jsonutils.com/能够为您提供类的属性。唯一的问题是您需要手动重命名任何不符合正确c#语法的属性。