我使用返回JSON的API。我在访问不在数组中的元素时遇到问题。
我的JSON看起来像这样:
在JSON of 2上,我可以使用
访问元素dataJson.Storingen.Ongepland.Storing.@elementName@
但是,当我使用JSON为1时,我得到以下异常:
Additional information: Newtonsoft.Json.Linq.JProperty does not contain a definition for Traject
答案 0 :(得分:1)
该图片上的两个JSON在架构上并不相似。第一个有嵌套"存储"对象,它有几个属性,但在第二种情况下,"存储"变成了一个对象数组。您尝试映射的对象模型是否有可能尝试将此数组解析为单个对象?
如果是这样,那么我认为您需要更改"存储"在你的模型中的数组。您将能够获得这样的元素:
dataJson.Storingen.Ongepland.Storing[0].@elementName@
答案 1 :(得分:1)
第二个json的结构与第一个不同。
在第二种情况下,您应该使用dataJson.Storingen.Ongepland.Storing[0].@property
来访问您想要的属性。
但是如果你想要在数组中汇总,只需使用for
答案 2 :(得分:0)
我知道这是一篇很老的帖子,但我想也许我可以分享一下我对第一个问题的想法,我相信,以防未来有人看到这个。
第一。创建两个类:
public Storing Test {get; set;}
public class Storing
{
public string id {set; get;}
public string Traject {set; get;}
public string Periode {set; get;}
}
第二。在主程序中,反序列化JSON并按原样调用对象
TestCase list = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<TestCase>(*your web API uri*);
Console.WriteLine ("id:{0}, Traject{1}, Periode{2}", list.Id, list.Traject, list.Periode);