IOS之JSONKit的使用

本文介绍如何利用JSONKit库快速解析JSON数据。通过将JSON字符串转换为NSData,再将其转换为NSDictionary,可以轻松获取键值对。同时,文章还提供了处理JSONKit不支持ARC的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值