访问JSON数组中的元素

时间:2015-04-07 09:25:50

标签: c# arrays json

我使用返回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

3 个答案:

答案 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);