2012-04-17 95 views
15

我有一個JSON字符串作爲iOS中的NSString對象。我想解析這個,並提取JSON字符串中給定的參數。有沒有一種有效的方法來解析這個或者是唯一的方式來搜索子字符串等?iOS JSON NSString解析

回答

48

與iOS 5做它的方式是使用NSJSONSerialization類。您將要先把你的字符串轉換爲一個NSData對象,然後調用類的方法JSONObjectWithData

NSData *jsonData = [myJsonString dataUsingEncoding:NSUTF8StringEncoding]; 
NSError *e; 
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:nil error:&e]; 

注意JSONObjectWithData將返回一個NSDictionary或NSArray的,這取決於是否您的JSON字符串表示的字典或數組。

+9

請注意,您應該使用0或NSJSONReadingMutableContainers作爲選項來抑制編譯器警告。 – 2014-02-02 10:10:07

0

將JSON字符串轉換爲Objective-C對象(NSArrayNSDictionary)的好框架是SBJsonGithub)。

用法:

NSDictionary *dict = [myJsonString JSONValue]; 
+0

有沒有辦法用iOS 5 JSON做到這一點? – user1120008 2012-04-17 23:55:33

+0

是的,但它涉及更多,並且限制了您的應用程序僅在iOS 5上運行。 – 2012-04-18 00:01:13

+0

我同意,SBJSON是您的朋友。比官方API更方便,並且也適用於較舊的iOS版本。 – aroth 2013-02-03 05:07:46