【问题标题】:Obtaining right value from "JSON-style" NSString in objective-c在objective-c中从“JSON-style” NSString中获取正确的值
【发布时间】:2011-05-11 23:59:01
【问题描述】:

我正在尝试从下面的 JSON 样式的 NSString 中获取 NSString“Bonjour”:

[[["Bonjour","Hello","",""]],,"en",,[["Bonjour",[4],1,0,1000,0,1,0]],[["Hello",4,[["Bonjour",1000,1,0]],[[0,5]],"Hello"]],,,,2]

假设结果是上面的 NSString,实现以下代码会给我 null

NSDictionary *td = [result JSONValue];
NSLog(@"\n%@", td);  

如何从这个 JSON 样式的字符串中获取“Bonjour”?

【问题讨论】:

  • 使用 http://jsonlint.com 验证您的 JSON 字符串。您会注意到它不是有效的 JSON,因为 ,,
  • 你能告诉我们更多关于你想要达到的目标吗?你的弦是从哪里来的?为什么要从字符串中提取“Bonjour”?

标签: objective-c ios json


【解决方案1】:

我认为这不是格式良好的 JSON。一方面,这将返回一个数组..(由 [] 包围,而不是 {})。此外,您的数组有空条目(',' 没有任何分隔它们)

你在使用 SBJSON 吗?

如果你查阅 NSObject+JSON.h,你会看到这条评论:

/// Returns the NSDictionary or NSArray represented by the receiver's JSON representation, or nil on error

出现错误。检查你的控制台输出,你应该会看到一个错误。

【讨论】:

  • 另外,不确定您要达到的目标。你为什么要从你发布的内容中提取这个字符串?
【解决方案2】:

我有点不确定您发布的数组是 JSON 样式的 NSString,但我相信您返回的 NSDictionary 基本上应该完全按照它们在 JSON 原始文件中出现的方式存储键值对。例如,如果您有类似 JSON:

{key: "value"}

然后你会得到一个 NSDictionary,其中的“key”键与“value”的值匹配。

也许您的 NSDictionary 为空的原因是因为您没有传递JSONValue 可以理解的东西?

【讨论】:

    猜你喜欢
    • 2012-01-19
    • 2013-04-10
    • 2023-03-08
    • 2013-08-02
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    相关资源
    最近更新 更多