【问题标题】:WP8 JSON Deserialisation of Arrays nested in Arrays nested in ArraysWP8 JSON 反序列化嵌套在数组中的数组嵌套在数组中
【发布时间】:2014-04-19 17:20:14
【问题描述】:

我想做一些非常简单的事情。
我只想获取一个 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.formattedDate,但我无法到达 jobsListByDate.jobsList.titleLinkUrl 附近的任何地方,更不用说在 NewsArticlesList 中找到这些来源了。

抱歉,如果这超级简单(我希望如此),但我是 WP8 菜鸟。
我知道在 SO 上有类似的线程,但它们似乎都没有处理这么深的数组。

【问题讨论】:

  • 这可能是问题吗? public List relatedSearchesList { get;放; }
  • 这是问题之一。所有的列表都是一个问题。我不知道如何访问它们。
  • 请发布json源或链接
  • 猜对了。下面回答。谢谢。

标签: c# arrays json windows-phone-8 expandoobject


【解决方案1】:

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

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

我试图进入使用

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

而智能感知被吓坏了。

使用 [0] 我现在可以很好地钻取并且不需要扩展对象。只需要在上面睡觉。 :-)

【讨论】:

    猜你喜欢
    • 2019-09-22
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多