我在这里梳理了问题,希望能找到我所处的类似情况,但找不到。我的问题涉及 iOS 5 中的 NSJSONSerialization 类,以及如何处理解析从 JSONObjectWithData:options:error: 方法返回的单个值。返回的 JSON 数据是数组中的单个值,如下所示:
[1]
数据将是 1(如上所示)或 0,具体取决于我正在使用的 Web 服务中执行的逻辑。附带说明一下,Web 服务是 WCF REST 服务。在 XCode 中,将反序列化的 JSON 分配给临时 NSArray 对象后,调试器会显示以下内容:
po parsedData
(NSArray *) $43 = 0x06e2ee70 <__NSCFArray 0x6e2ee70>( 1 )
当我尝试使用 ObjectAtIndex: 从数组中获取值时,我得到了这个:
po [parsedData objectAtIndex:0]
(id) $44 = 0x06b1dad0 1
我的问题是:0x06b1dad0
之前的十六进制值 ( ) 是1
什么?也许是我没有访问的键或索引(我在想我只是没有深入到数组中以获得真正的价值)?它与 JSON 的格式化方式有关吗?正如我一直在考虑的那样,我有一种格式被关闭的感觉。
我遇到的问题是我无法获取存储在 JSON 消息中的实际值——当我访问数组中的元素parsedData
并将其分配给变量时,它只返回十六进制值而不是1
.
转换为 NSInteger 给出了这个:
po (NSInteger)[parsedData objectAtIndex:0]
(NSInteger) $45 = 112319184 1
对此的任何见解将不胜感激。如果论坛的其他地方已经解决了这个问题,我深表歉意。
谢谢。