首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析JSON --但是遗漏了一些数组

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

Stack Overflow用户
提问于 2016-05-10 20:20:58
回答 2查看 133关注 0票数 0

我试图用Newtonsoft包解析一个JSON字符串。

来自“精英危险伙伴”界面。

一切似乎都很好,但现在我已经确定了

结果JSON-对象中不存在两个数组。

我的解析代码:

代码语言:javascript
复制
String json = response.Json ?? "{}";
JObject m_joCompanion = JObject.Parse(json);

您可以下载这里的JSON字符串

缺失的部分是

“lastStarport”-“船舶”-“shipyard_list”

“lastStarport”-“船舶”-“unavailable_list”

如果我使用https://jsonformatter.curiousconcept.com/联机解析字符串,所有数据都是可见的。

有谁知道是怎么回事,或者怎么得到丢失的数据?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-05-10 20:44:41

请注意: JSON文件是7400+行长的,所以我不知道您是否希望直接发布,也许OP可以将其发布到pastebin或其他地方。

您使用的是什么.NET版本和Newtonsoft.Json版本?我尝试使用.NET 4.5.2和Newtonsoft.Json版本8.0.3,我可以很好地导航到这些对象。

我运行了以下命令:

代码语言:javascript
复制
        var jsonText = File.ReadAllText(@"C:\Users\me\Downloads\companion.json");
        var m_joCompanion = JObject.Parse(jsonText);

        Console.WriteLine(m_joCompanion["lastStarport"]["ships"]["shipyard_list"]);
        Console.WriteLine(m_joCompanion["lastStarport"]["ships"]["unavailable_list"]);

它肯定会输出一些数据。您在文件中发布的内容与您的response.Json属性在编码上有什么不同吗?

票数 0
EN

Stack Overflow用户

发布于 2016-05-11 06:52:16

下一次尝试:)

好的,我发现VS持有错误的dll版本(不知道为什么)。

然而,现在我正在编写正确的版本(在bin路径中找到v8.0.3.19514),但这并没有解决我的问题:-(

我做了以下测试:

代码语言:javascript
复制
                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“
  • 儿童2:“姓名”:“田中航站楼”
  • 儿童3:“派系”:“独立”
  • “商品”:[]
  • 子5:“模块”:{}

但我没有船资料,也没有它的一个子结构

我不知道问题出在哪里。你有小费吗?

编辑:

我在https://jsonformatter.curiousconcept.com/上做了另一个an转换了标准:

RFC 7159 :5名儿童(w/o船-数据)

RFC 4627 :6名儿童(船舶-现有数据)

我能在Newtonsoft换一下这个吗?

编辑2

我试过了,而且成功了!

代码语言:javascript
复制
Newtonsoft.Json.Linq.JObject test = JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(json);

但是,我仍然不明白为什么旧版本的.Parse()不能在我的系统上工作:-/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37148212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档