Xcode解析Json

Posted

技术标签:

【中文标题】Xcode解析Json【英文标题】:Xcode Parse Json 【发布时间】:2014-11-07 12:43:38 【问题描述】:

这是我从 url 获取 post json 数组的代码

// SENDING A POST JSON
    NSString *post = [NSString stringWithFormat:@"plm=1"];
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

     NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

    [request setURL:[NSURL URLWithString:@"http://muvieplus.com/testjson/test.php"]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setHTTPBody:postData];


    NSURLResponse *requestResponse;
    NSData *requestHandler = [NSURLConnection sendSynchronousRequest:request returningResponse:&requestResponse error:nil];

    NSString *requestReply = [[NSString alloc] initWithBytes:[requestHandler bytes] length:[requestHandler length] encoding:NSASCIIStringEncoding];
    NSLog(@"%@", requestReply);

当我运行它时,我得到了 requestReply

2014-11-07 14:22:15.565 JsonApp[1849:60b] 

    "employees":[
    "firstName":"John", "lastName":"Doe", 
    "firstName":"Anna", "lastName":"Smith",
    "firstName":"Peter", "lastName":"Jones"
]

我如何解析这个 json?有什么帮助吗?

【问题讨论】:

JSON Parsing in ios 7的可能重复 我建议使用 JSON 解析器,例如 NSJSONSerialization,如果您在提出问题之前稍作搜索,就会发现它。 JSON parser for Cocoa的可能重复 【参考方案1】:

使用NSJSONSerialization 类从 JSON 数据中获取对象。

NSError *error;
NSDictionary *requestReply = [NSJSONSerialization JSONObjectWithData:[requestHandler bytes] options:NSJSONReadingAllowFragments error:&error]
if (requestReply) 
    //use the dictionary

else 
    NSLog("Error parsing JSON: %@", error);

这将返回一个字典(取决于数据,它可能是一个数组),其中包含 JSON 中的所有对象,然后您可以使用它来构建您自己的对象或其他对象。

我建议调查异步请求的使用,可能使用NSURLSessionAFNetworking 之类的第三方库,因为这将使您的应用更具响应性。您甚至不应该使用同步 API 加载本地文件,更不用说发出网络请求了,因为您的应用在得到响应之前将无法执行任何其他操作(在当前线程上),这可能是一个非常很长一段时间,尤其是当人们使用蜂窝数据时。

【讨论】:

以上是关于Xcode解析Json的主要内容,如果未能解决你的问题,请参考以下文章

Xcode解析Json

在 UIPickerview xcode 上解析 JSON 值

解析 Json Xcode

xcode如何等到json数据解析?

解析 JSON Facebook 对话 XCODE

使用xcode解析对象内的json数组