解析JSON-但遗漏了一些数组



我正在尝试使用Newtonsoft包解析JSON字符串
它来自"精英危险伙伴"界面
一切似乎都很好,但现在我已经确定了
结果JSON对象中不存在两个数组。

我的解析代码:

String json = response.Json ?? "{}";
JObject m_joCompanion = JObject.Parse(json);

您可以在此处下载JSON字符串。

缺少的部件是

"lastStarport"-"ships"-"shipyard_list"

"lastStarport"-"ships"-"unavailable_list"

如果我使用https://jsonformatter.curiousconcept.com/所有数据都是可见的。

有人知道哪里出了问题,或者如何获得丢失的数据吗?

感谢

请注意:JSON文件有7400多行长,所以我不知道你是否想直接发布,也许OP可以发布到pastebin或其他什么地方。

什么。NET版本和Newtonsoft版本。Json你在用吗?我试着用。NET 4.5.2和Newtonsoft。Json版本8.0.3和我可以很好地导航到这些对象。

我运行了以下内容:

        var jsonText = File.ReadAllText(@"C:UsersmeDownloadscompanion.json");
        var m_joCompanion = JObject.Parse(jsonText);
        Console.WriteLine(m_joCompanion["lastStarport"]["ships"]["shipyard_list"]);
        Console.WriteLine(m_joCompanion["lastStarport"]["ships"]["unavailable_list"]);

它肯定会输出一些数据。你在文件中发布的内容和你的回复在编码或其他方面有什么不同吗。Json财产?

下一次尝试:-)

好的,我发现VS持有错误的dll版本(不知道为什么)
然而,现在我正在开发正确的版本(在bin路径中找到v8.0.3.19514),但这并没有解决我的问题:-(

我做了以下测试:

                Debug.Print(m_joCompanion["lastStarport"].Children().Count());
                foreach (var item in m_joCompanion["lastStarport"].Children())
                {
                    Debug.Print(item.ToString());                        
                }

我得到了这些对象的输出/提示:

  • lastStarport有5个孩子(应该是6岁!)
  • 子级1:"id":"3226125568"
  • child 2:"name":"田中终点站"
  • 儿童3:"派系":"独立"
  • 儿童4:"商品":[]
  • 子级5:"模块":{}

但我没有得到(船只)数据或其子结构

我不知道问题出在哪里。你有建议吗?

编辑:
我又做了一次https://jsonformatter.curiousconcept.com/转换了标准:

RFC 7159:5子级(w/o装运数据)
RFC 4627:6子级(现有船舶数据)

我可以在Newtonsoft换这个吗?

编辑2

我试过了,效果很好!

Newtonsoft.Json.Linq.JObject test = JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(json);

但我仍然不明白为什么旧版本带有。解析()在我的系统上不工作:-/

相关内容

  • 没有找到相关文章

最新更新