在objective-c中从“JSON-style” NSString中获取正确的值
Posted
技术标签:
【中文标题】在objective-c中从“JSON-style” NSString中获取正确的值【英文标题】:Obtaining right value from "JSON-style" NSString in objective-c 【发布时间】: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”?
【参考方案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
可以理解的东西?
【讨论】:
以上是关于在objective-c中从“JSON-style” NSString中获取正确的值的主要内容,如果未能解决你的问题,请参考以下文章
尝试在objective-c中从objects[0]插入nil对象
无法在 Xcode 控制台中从 Objective-C 记录 Swift Singletons
如何在 Objective-C 中从 mysql 数据库中填充 NSArray?
如何在 iOS 7 的 UIWebView 中从 JavaScript 调用 Objective-C?
我需要在 iOS 应用程序中从 SpriteKit GameViewController 转换为常规视图控制器(Objective-C)