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 中的所有对象,然后您可以使用它来构建您自己的对象或其他对象。
我建议调查异步请求的使用,可能使用NSURLSession
或AFNetworking
之类的第三方库,因为这将使您的应用更具响应性。您甚至不应该使用同步 API 加载本地文件,更不用说发出网络请求了,因为您的应用在得到响应之前将无法执行任何其他操作(在当前线程上),这可能是一个非常很长一段时间,尤其是当人们使用蜂窝数据时。
【讨论】:
以上是关于Xcode解析Json的主要内容,如果未能解决你的问题,请参考以下文章