2012-06-04 68 views
0

我有一個問題,解析我的iPhone應用程序的json數據,我是新的Objective-C。我需要解析json並獲取值。請幫忙。這是我的JSON數據:解析json在objective-c中爲我的iphone應用程序

[{"projId":"5","projName":"AdtvWorld","projImg":"AdtvWorld.png","newFeedCount":"0"},{"projId":"1","projName":"Colabus","projImg":"Colabus.png","newFeedCount":"0"},{"projId":"38","projName":"Colabus Android","projImg":"ColabusIcon.jpg","newFeedCount":"0"},{"projId":"25","projName":"Colabus Internal Development","projImg":"icon.png","newFeedCount":"0"},{"projId":"26","projName":"Email Reply Test","projImg":"","newFeedCount":"0"},{"projId":"7","projName":"PLUS","projImg":"7plusSW.png","newFeedCount":"0"},{"projId":"8","projName":"Stridus Gmail Project","projImg":"scr4.png","newFeedCount":"0"}] 
+1

[你嘗試過什麼(http://whathaveyoutried.com/) – rckoenes

+0

看到這個答案的http://計算器。 com/questions/10459444/json-parsing-method-not-working-for-ios4-in-iphone/10459696#10459696 – Deepesh

回答

1

在iOS 5或更高版本中,您可以使用NSJSONSerialization。如果你有一個字符串的JSON數據,你可以這樣做:

NSError *e = nil; 
NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding]; 
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &e]; 

編輯爲了得到一個特定的值:

NSDictionary *firstObject = [jsonArray objectAtIndex:0]; 
NSString *projectName = [firstObject objectForKey:@"projName"]; 
+0

我試過了,但是如何獲得個人密鑰的值,如「projName」的值 – stanley

+0

@stanley請參閱我編輯的答案。它的工作原理是 – ThomasW

+0

。非常感謝你!! – stanley

1

我會推薦使用JSONKit庫進行解析。

以下是關於如何使用它的tutorial。 您將基本上以字典結尾,並使用objectForKey與您的密鑰來檢索值。

+0

+1爲JSONKit提示。它是最快的JSON解析器。 – CarlJ

0

我不得不使用SBJson用於讀取和寫入JSON成功。

看看documentation here並瞭解如何使用它。

實質上,對於解析,您只需將字符串提供給SBJsonParser,並返回帶有objectForKey函數的字典。例如,你的代碼可能看起來像:

NSDictionary* parsed = [[[SBJsonParser alloc] init] objectWithString: json]; 
NSString* projId = [parsed objectForKey:@"projId"]; 
0

使用SBJson

SBJsonParser *parser = [[SBJsonParser alloc] init]; 

NSMutableDictionary *dicRes = [parser objectWithString:stringFromServer error:nil]; 
0

無需使用第三方類。 Objective-c已經包括處理JSON。

NSJSONSerialization需要NSData對象或從URL讀取。下面的代碼在你的JSON字符串測試:

NSString *json; // contains your example with escaped quotes 
NSData *jsonData = [json dataUsingEncoding:NSUTF8StringEncoding]; 
NSError *error; 
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:jsonData 
    options:NSJSONReadingAllowFragments error:&error] 

對於NSJSONSerialization更多的選擇看documentation

1

JSONKit

NSJSONSerialization(的iOS 5.0或更高版本)