搜索
bottom↓
回复: 17

jansson如何解析串口接收到的json数据

[复制链接]

出0入0汤圆

发表于 2020-2-21 14:30:30 | 显示全部楼层 |阅读模式
用了一颗国产的单片机me32f030,有8Kram。想用keil带的jansson解析下wifi发下来的json数据
{"code":200,"data":{"device_name":"XN-HGZ210.1-20190101-0001","device secret":"SaM8avUtsRXwnU779WTgRwT3Tskhzm7P","mac_address":"FCEEE612F910","product key" :"a1009p4ihtg","state": 200},"errMsg":"\u6210\u529f","success": true},这个数据存在一个uart0[250]一个字符串中,求指点怎么提取device_name,device secret,product key,success这几个关键字

出0入0汤圆

发表于 2020-2-21 14:33:18 | 显示全部楼层
我用的是cjson

出0入0汤圆

 楼主| 发表于 2020-2-21 14:38:32 | 显示全部楼层

keil自带的CJSON 有警告 unrecognized GCC pragma ,处理不掉,就没用这个,你的有这个问题吗

出0入0汤圆

发表于 2020-2-21 14:46:38 | 显示全部楼层
刚移植CJSON还没实际用,不复杂的话也感觉字符串操作反而更简单

出0入0汤圆

发表于 2020-2-21 14:52:22 | 显示全部楼层
eaglelpx 发表于 2020-2-21 14:38
keil自带的CJSON 有警告 unrecognized GCC pragma ,处理不掉,就没用这个,你的有这个问题吗 ...

我是github上下载的cjson

https://github.com/DaveGamble/cJSON

出0入0汤圆

发表于 2020-2-21 14:53:54 | 显示全部楼层
cJson挺好用的,自己裁剪下,把用不到的删掉,应该可以用起来

出0入0汤圆

发表于 2020-2-21 15:13:23 | 显示全部楼层
内容格式标准的话,自己解析呗。

出0入0汤圆

 楼主| 发表于 2020-2-21 15:16:11 | 显示全部楼层
linyu0395 发表于 2020-2-21 14:52
我是github上下载的cjson

https://github.com/DaveGamble/cJSON

好的,我下载试试,3Q

出0入0汤圆

 楼主| 发表于 2020-2-21 15:18:41 | 显示全部楼层
lnskngdc 发表于 2020-2-21 14:53
cJson挺好用的,自己裁剪下,把用不到的删掉,应该可以用起来

自己弄的完全解析不了
char * prky;
cJSON *json_tcpdata;
json_tcpdata =cJSON_Parse(uart0);
prky=cJSON_GetObjectItem(json_tcpdata, "device_name")->valuestring;
查看prkey 为0

出0入0汤圆

 楼主| 发表于 2020-2-21 15:19:21 | 显示全部楼层
一号纵队 发表于 2020-2-21 15:13
内容格式标准的话,自己解析呗。

这cjson或者jansson感觉比较高大上

出0入0汤圆

发表于 2020-2-21 15:35:33 | 显示全部楼层
cjson 我已经用在多个项目上  目前没发现什么问题  就是内存分配和释放上要小心  要不然跑着跑着就挂了

出0入0汤圆

 楼主| 发表于 2020-2-21 15:43:10 | 显示全部楼层
linyu0395 发表于 2020-2-21 15:35
cjson 我已经用在多个项目上  目前没发现什么问题  就是内存分配和释放上要小心  要不然跑着跑着就挂了 ...

好的。CJSON解析有两个括号的,比如device_name这个在里面括号的,要怎么解析

出0入0汤圆

发表于 2020-2-21 16:04:36 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2020-2-21 16:05:47 | 显示全部楼层
eaglelpx 发表于 2020-2-21 15:43
好的。CJSON解析有两个括号的,比如device_name这个在里面括号的,要怎么解析 ...

很简单的  里面都有参考代码  读一遍不会吃亏的

出0入0汤圆

 楼主| 发表于 2020-2-21 16:19:11 | 显示全部楼层
linyu0395 发表于 2020-2-21 16:05
很简单的  里面都有参考代码  读一遍不会吃亏的

好的,我再看看

出330入0汤圆

发表于 2021-2-4 22:49:36 | 显示全部楼层
linyu0395 发表于 2020-2-21 15:35
cjson 我已经用在多个项目上  目前没发现什么问题  就是内存分配和释放上要小心  要不然跑着跑着就挂了 ...

你上面的cjson是移植到stm32上的吧,stc51单片机上好用不?

出0入0汤圆

发表于 2021-2-5 08:30:48 | 显示全部楼层
zcllom 发表于 2021-2-4 22:49
你上面的cjson是移植到stm32上的吧,stc51单片机上好用不?

51的话,用jsmn吧,更小巧

出500入109汤圆

发表于 2021-2-5 08:46:42 | 显示全部楼层

你是如何做到vscode代码无警告的?
我用vscode代码一直都是一堆警告, cmsis框架很多定义都是相同名称,条件编译, vsc没办法正常识别他们
开始的时候还想折腾一下工程设置, 后来就放弃了, 无从下手.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-10 17:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表