json解析

作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式

从ios5开始,apple提供了对json的原生支持,但为了兼容以前的ios版本,我们仍然需要使用第三方库来解析

常用的ios json库有json-frameworkJSONKitTouchJSON等,这里说的是JSONKit

JSONKit的使用相当简单,从github.com下载下来,添加到ios项目中,让好在要使用json的地方“#import “JSONKit.h””,json相关的方法,就会自动添加到NSString、NSData下,

常用的方法,有下面几个:

- ( id )objectFromJSONString;
- ( id )objectFromJSONStringWithParseOptions:(JKParseOptionFlags)parseOptionFlags;
- ( id )objectFromJSONData;
- ( id )objectFromJSONDataWithParseOptions:(JKParseOptionFlags)parseOptionFlags;

 如果json是“单层”的,即value都是字符串、数字,可以使用objectFromJSONString:

NSString  *json = @ "{\"a\":123, \"b\":\"abc\"}" ;
NSDictionary  *data = [json objectFromJSONString];
NSLog (@ "json.a:%@" , [data objectForKey:@ "a" ]);
NSLog (@ "json.b:%@" , [data objectForKey:@ "b" ]);
[json release];

 如果json有嵌套,即value里有array、object,如果再使用objectFromJSONString,程序可能会报错(我的测试结果:使用由网络得到的php/json_encode生成的json时报错,但使用NSString定义的json字符串时,解析成功),最好使用objectFromJSONStringWithParseOptions

NSString  *json = @"{\"a\":123, \"b\":\"abc\", \"c\":[134, \"hello\"],
     \ "d\":{\"name\":\"张三\",\"age\":23}}" ;
NSLog (@ "json:%@" , json);
NSDictionary  *data = [json objectFromJSONStringWithParseOptions:JKParseOptionLooseUnicode];
NSLog (@ "json.c:%@" , [data objectForKey:@ "c" ]);
NSLog (@ "json.d:%@" , [[data objectForKey:@ "d" ]objectForKey:@ "name" ]);
[json release];

 

结果:
2012-07-09 18:48:07.255 Ate-Goods[17113:207] json.c:(
134,
hello
)
2012-07-09 18:48:07.256 Ate-Goods[17113:207] json.d:张三

从上面的写法可以看出,json与objece-c的数据对应关系如下:
Number -> NSNumber
String -> NSString
Array -> NSArray
Object -> NSDictionary
另外:
null -> NNSNull
true and false -> NNSNumber

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32是一款嵌入式微控制器,在嵌入式系统中广泛应用。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于解析和生成。在STM32中使用JSON解析器可以实现对JSON格式数据的解析。 首先,需要在STM32的开发环境中集成JSON解析库。有许多第三方的JSON解析库可供选择,如cJSONJSON for Modern C等。这些库提供了用于解析JSON数据的函数和数据结构。 在解析JSON数据之前,需要先将JSON字符串数据加载到STM32的内存中。可以通过串口、网络等方式将JSON数据发送到STM32上。接收到的数据可以存储在数组或缓冲区中。 一旦JSON数据加载到了STM32的内存中,可以使用JSON解析库提供的函数对其进行解析。首先需要创建一个JSON对象,然后使用解析函数将JSON字符串数据解析JSON对象。解析函数会将JSON数据拆分成键值对的形式,并将其存储在JSON对象中。 一旦JSON对象创建完成,就可以通过遍历JSON对象的键值对来获取具体的数据。例如,可以使用键来获取相应的值。根据JSON数据的结构,可以使用递归或循环的方式来遍历复杂的JSON对象。 最后,根据应用需求,可以对解析后的数据进行处理、存储或传输。可以将数据用于控制外围设备、更新显示内容等。 总之,STM32的JSON解析过程需要集成JSON解析库,加载JSON数据到内存中,使用解析函数将数据解析JSON对象,遍历JSON对象获取数据,然后根据需求进行处理。通过合理的代码设计和调试,可以有效地实现STM32的JSON解析功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值