嵌套在数组中的数组的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上也有类似的线程,但似乎没有一个能处理这么深的数组。

嵌套在数组中的数组的WP8 JSON反序列化

我没有规定要去哪个分支,所以它很困惑。

System.Diagnostics.Debug.WriteLine(apiData.jobsByDateList[0].jobsList[0].interestLevel);

我试图使用进入

System.Diagnostics.Debug.WriteLine(apiData.jobsByDateList.jobsList.interestLevel);

intellisense吓坏了。

有了[0],我现在可以很好地进行钻取,而不需要expandoobject。只需要在上面睡觉。:-)