当前位置: 首页 > 工具软件 > JSONKit > 使用案例 >

IOS之JSONKit的使用

胡鸿禧
2023-12-01


虽然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);

 类似资料: