|
本帖最后由 雷鹏 于 2020-6-7 19:44 编辑
由于项目的需要,要使用STM32解析和构造JSON数据,在V5的开发板上做了一个小的demo分享给大家。1.本例移植了cJSON,并在代码里面添加部分中文注释,大家可以在
http://www.armbbs.cn/forum.php?mod=viewthread&tid=22014&highlight=json
这个帖子里下载官方原版。
2.移植过程中务必增加堆(HEAP)的大小,本例子设置的是0C00。
正常打印
CPU : STM32F407IGT6, LQFP176, UID = 34323633 30355112 0050004C
*************************************************************
* 例程名称 : V5-stm32 json 解析 构造例子
* 例程版本 : 1.1
* 发布日期 : 2015-03-23
* 固件库版本 : V1.5.0 (STM32F4xx_StdPeriph_Driver)
*
* QQ : 1295744630
* 旺旺 : armfly
* Email : armfly@qq.com
* 淘宝店: armfly.taobao.com
* Copyright www.armfly.com 安富莱电子
*************************************************************
/**************解析Json**************/
有格式的方式打印Json:
{
"semantic": {
"slots": {
"name": "张三"
}
},
"rc": 0,
"operation": "CALL",
"service": "telephone",
"text": "打电话给张三"
}
无格式的方式打印Json:
{"semantic":{"slots":{"name":"张三"}},"rc":0,"operation":"CALL","service":"telephone","text":"打电话给张三"}
一步一步的获取name 键值对:
获取semantic下的cjson对象:
{
"slots":{
"name": "张三"
}
}
获取slots下的cjson对象
{
"name":"张三"
}
获取name下的cjson对象
"张三"
name:张三
打印json所有最内层键值对:
name->"张三"
rc->0
operation->"CALL"
service->"telephone"
text->"打电话给张三"
/**************构造Json**************/
{
"rc":0,
"operation":"CALL",
"service":"telephone",
"text":"打电话给张三",
"semantic":{
"slots": {"name": "张三"}
}
}
如果设置小了就不能正常解析,例如200
例如串口打印结果
/**************解析Json**************/
Error before: [@]
/**************构造Json**************/
@
附代码
v5_json.rar
(5.72 MB, 下载次数: 372)
|
评分
-
查看全部评分
|