2013-04-09 87 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