嵌套在数组中的数组的WP8 JSON反序列化
本文关键字:数组 反序列化 JSON WP8 嵌套 | 更新日期: 2023-09-27 17:58:59
我想做一些非常简单的事情
我只想取一个JSON字符串(我有)并用它填充一大堆东西。
对我来说,问题是在更多的数组中隐藏着数组,我无法获取我的数据。
我尝试过标准的反序列化,比如。。。
var apiData = JsonConvert.DeserializeObject<RootObject>(json);
但这只能让我进入顶层-rootObject 中有什么
我试着做一本字典。。。
Dictionary<string, dynamic> values = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(json);
但这也不让我往下钻(否则我就进不去了)
我已经使用json2c#设置了我的c#
我浏览了包括这里在内的所有互联网
我最接近于创建任何接近的东西是expandoObject
var converter = new ExpandoObjectConverter();
dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(json, converter);
我可以从调试器中看到,它保持了我想要的一切结构,但我不知道如何取出一些东西
长话短说,现在已经两天了,我的头撞在砖墙上
我只想能够从JSON字符串中获取数据,但我不能更改该字符串,因为它不是我的。
public class NewsArticlesList
{
public string title { get; set; }
public string link { get; set; }
public string source { get; set; }
public string snippet { get; set; }
}
public class jobsList
{
public string title { get; set; }
public string titleLinkUrl { get; set; }
public List<object> relatedSearchesList { get; set; }
public string formattedTraffic { get; set; }
public int trafficBucketLowerBound { get; set; }
public int interestLevel { get; set; }
public string interestColor { get; set; }
public List<NewsArticlesList> newsArticlesList { get; set; }
public double startTime { get; set; }
public string shareUrl { get; set; }
public string date { get; set; }
}
public class jobsByDateList
{
public string date { get; set; }
public string formattedDate { get; set; }
public List<jobsList> jobsList { get; set; }
}
public class RootObject
{
public string summaryMessage { get; set; }
public double dataUpdateTime { get; set; }
public List<jobsByDateList> jobsByDateList { get; set; }
public string oldestVisibleDate { get; set; }
public bool lastPage { get; set; }
}
我的问题是这些列表在列表中
我可以访问jobsListByDate.formatedDate,但我无法接近jobsListByDate.jobsList.titleLinkUrl,更不用说在这些来源的NewsArticlesList中了。
抱歉,如果这是超级容易(我希望是),但我是一个WP8 noob
我知道SO上也有类似的线程,但似乎没有一个能处理这么深的数组。
我没有规定要去哪个分支,所以它很困惑。
System.Diagnostics.Debug.WriteLine(apiData.jobsByDateList[0].jobsList[0].interestLevel);
我试图使用进入
System.Diagnostics.Debug.WriteLine(apiData.jobsByDateList.jobsList.interestLevel);
intellisense吓坏了。
有了[0],我现在可以很好地进行钻取,而不需要expandoobject。只需要在上面睡觉。:-)