虽然IOS有YYMode等三方的json解析框架,但是简单的json解析我们使用JSONKit就可以了,而且使用非常方面,闲话少说直接上代码。
比如我们有这么一个json字符串NSString *jsonStr= @"{\"id\": \"13458\",\"name\": \"jack\",\"list\": [\"one\",\"two\",\"three\"]}";
。我们想很快解析每个key和value
首先转成NSData对象
NSData* jsonData = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];
第二步把NSData 转换成NSDictionary,正好是key和Value的方式
NSDictionary *resultDict = [jsonData objectFromJSONData];
NSLog(@"name is :%@",[resultDict objectForKey:@"name"]);
NSArray *list = [resultDict objectForKey:@"list"];
for (NSString *str in list) {
NSLog(@"list res:%@",str);
}
字典转换成成JSON字符串
NSString *jsonStr = [resultDict JSONString];
NSLog(@"temp is :%@",jsonStr);
JSONKit使用比较简单:将JSONKit.h和JSONKit.m拖到项目中。下载地址:https://github.com/johnezang/JSONKit/
由于JSONKit出现的比较早所以并不支持ARC,如果你的项目是支持ARC的,Build的时候可能会报错:error: assignment to Objective-C‘s isa is deprecated in favor of object_setClass()
解决办法:
(1)在Build Phases中找到JSONKit.m 修改成-fno-objc-arc;
(2)修改JSONKit.m文件第680行,修改为object_setClass(array, _JKArrayClass);
(3)修改JSONKit.m文件第931行,修改为object_setClass(dictionary, _JKDictionaryClass);