解析 JSON 对象时 JSONSerilazation 不起作用

Posted

技术标签:

【中文标题】解析 JSON 对象时 JSONSerilazation 不起作用【英文标题】:JSONSerilazation not working while parsing JSON object 【发布时间】:2015-03-18 10:47:01 【问题描述】:

解析从服务器获取的 NSData 时出现错误。 我无法获得 NDIctinory。

我收到错误“对象中的值没有字符串键”

 NSDictionary* json = [NSJSONSerialization JSONObjectWithData:[body dataUsingEncoding:NSUTF8StringEncoding]
                                                                     options:kNilOptions
                                                                       error:&error];

有人可以帮我解决这个问题吗?

【问题讨论】:

google.co.in/… 你能发布你的完整代码吗? 修正了一些语法和格式。删除无关的谢谢。 你能把收到的 JSON 贴出来吗 如果您不向我们展示 JSON,就很难告诉您出了什么问题。 【参考方案1】:

错误消息说在对象(这就是 JSON 所称的字典)中有一个不是字符串的键,即。 e.一个数字或另一个对象。这是无效的。

来自 RFC7159, 4:

对象结构表示为一对花括号 围绕零个或多个名称/值对(或成员)。 name 是一个 字符串

因此,您将获得无效的 JSON。如果可能的话,改变它。此外,您可以在 Q 中发布整个 JSON。(在对此 A 的评论中。)

【讨论】:

以上是关于解析 JSON 对象时 JSONSerilazation 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

当某些返回值可能是对象或对象集合时,如何使用 GWT AutoBeans 解析 JSON 消息?

前端解析返回的对象时json显示$ref问题的解决

当 Json root 不是数组而是对象时如何解析 JSON 数据,反之亦然,基于不同的 url?

设置 minifyEnabled 为 true 时无法使用 GSON 解析 json 对象

解析 JSON 数据时如何摆脱 <null> 对象

解析JSON数据成为对象时,报错exepct '[', but {, pos 1, json