2013-04-09 88 views
1

我正在接收这个JSON字符串,并想知道如何将其序列化为字典,以便我可以将其解析为托管对象。序列化JSON字符串SBJSON vs NSJSONSerialization vs其他什么?

我看过几种方法(在标题中命名),似乎无法找到最简单,最快捷的选择。我想使用NSJSONSerialization,但我不确定它是这样做的吗?其中串进来

NSString *data = [[NSString alloc]initWithData:response encoding:NSUTF8StringEncoding]; 
     NSLog(@"String %@",data); 

的NSLog消息

String [{"0":"1","id":"1","1":"re ee","name":"re ee","2":"http:\/\/ree.com\/images\/re.png","backgroundImageUrl":"http:\/\/ree.com\/images\/re.png","3":"http:\/\/ree.com\/images\/re.png","logoImageUrl":"http:\/\/ree.com\/images\/re.png"}]<br /> 

代码预先感谢您

+1

两者都相当稳固。 (事实被告知,SBJSON有更多的“烙印”时间,但NSJSONSerialization有苹果公司背后的原因)。部分原因是它更容易做到。有了SBJSON,你可以使用NSStrings,而NSJSONSerialization使用NSData,再加上一些小的操作差异。我不打扰任何其他人。 – 2013-04-09 01:37:28

+0

所以我使用AFNetworking,显然使用NSStrings? – 2013-04-09 01:38:36

+0

那么,在你的上例中'response'是NSData,我假设。 – 2013-04-09 01:51:37

回答

1

JSONKit就是你所期待的。

除了易用性,它比SBJSon更快,甚至比NSJSONSerialization更快。

对于你的榜样,你可以得到一个这样的数组:

NSArray* arrayFromJson = [data objectFromJSONString]; 
NSString* id = arrayFromJson[0][@"id"]; 

容易,是吧?

+2

NSJSONSerialization非常好。 JSONKit有一个潜在的问题 - 由于它使用了不推荐使用的函数。由于苹果解析器变得更快,它不再比NSJSONSerialization快得多。 – CouchDeveloper 2013-04-09 15:55:24

+1

任何人都可以提供有关如何解析速度现在的任何见解? GitHub上的Readme.md最近更新为2年。我想知道现在情况如何。 – Majster 2014-05-04 10:44:02

+0

NSJSONSerialization一路 – 2015-02-06 13:01:57