0

我在解析我的 iPhone 应用程序的 json 数据时遇到问题,我是 Objective-C 的新手。我需要解析 json 并获取值以继续。请帮忙。这是我的 JSON 数据:

[{"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"}]
4

6 回答 6

1

JSONKit

或者

NSJSONSerialization(iOS 5.0 或更高版本)

于 2012-06-04T08:49:45.490 回答
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"];
于 2012-06-04T08:26:16.963 回答
1

我建议使用JSONKit库进行解析。

这是有关如何使用它的教程。你基本上会得到一个字典并使用objectForKey你的键来检索值。

于 2012-06-04T08:21:17.400 回答
0

使用 SBJson

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

NSMutableDictionary *dicRes = [parser objectWithString:stringFromServer error:nil];
于 2012-06-04T08:39:25.937 回答
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请参阅文档

于 2012-06-04T08:40:02.087 回答
0

我已经成功使用SBJson读取和写入 json。

查看此处的文档并了解如何使用它。

本质上,对于解析,您只需将字符串提供给 SBJsonParser,它就会返回一个带有 objectForKey 函数的字典。例如,您的代码可能类似于:

NSDictionary* parsed = [[[SBJsonParser alloc] init] objectWithString: json];
NSString* projId = [parsed objectForKey:@"projId"];
于 2012-06-04T08:35:56.797 回答