找回密码
 立即注册
查看: 407|回复: 5

入门IoT学习过程中的一点小心得(1):简单的方式解析json数据

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:213
  • 最近打卡:2025-04-23 20:59:03
已绑定手机

36

主题

560

回帖

1885

积分

荣誉版主

积分
1885
发表于 2024-8-14 22:32:36 | 显示全部楼层 |阅读模式
挤着时间的学、看、查、想,陆续还会碰到更多的问题,碰到了问题再慢慢想办法解决。
自己悟出来的,分享一点小心得,暂且就叫第(1)个吧。
实现了AT指令发送数据到阿里云,然后通过阿里云控制LED亮灭(这灯点的挺费事儿)。。。
接收阿里云下发的mqtt数据,如果要做解析,方法有很多种,
好多stm32都是直接上json库,感觉自己用到的不多,而且那个开源库貌似不小,当然stc应该也能上,但确实觉得没必要,等以后需要的时候再说。
分享一个简单的方式给大家,如果有更好的方式,我们可以一起探讨。

基于文本格式,所以可以直接使用sscanf进行解析,红色部分涉及到个人密匙所以隐掉了,其他部分有注释:
00.JPG

编译以后的结果如下:
04.JPG

根据结果,在程序中就可以直接用strcmp进行比较,结果为0表示接收的数据没问题。
当然,更简单的方式还可以用strstr,但是有个问题,就是假定LED0ON这个结果后面跟着LED0ONN,也一样满足LED0ON,所以strcmp更准确。
如果基于hex格式,看着那一堆帧的分析,可能我会头大,所以退而求其次了。







回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:213
  • 最近打卡:2025-04-23 20:59:03
已绑定手机

36

主题

560

回帖

1885

积分

荣誉版主

积分
1885
发表于 2024-8-14 23:19:21 | 显示全部楼层

后面修改了一下,用strcmp去比较相等,如果结果为0再去输出打印字符结果。
05.JPG
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:422
  • 最近打卡:2025-05-01 09:54:52
已绑定手机

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2024-8-14 23:38:35 | 显示全部楼层
c语言上位机解析,发送下位机也是一种办法啊

点评

目前掌握了两种方式,一种是sscanf截取;一种是利用“或,根据规律去分段。 改天再发分段的。  详情 回复 发表于 2024-8-14 23:43
嗯,如果是MCU这边直接接收就处理呢?  详情 回复 发表于 2024-8-14 23:41
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:213
  • 最近打卡:2025-04-23 20:59:03
已绑定手机

36

主题

560

回帖

1885

积分

荣誉版主

积分
1885
发表于 2024-8-14 23:41:09 | 显示全部楼层
so*** 发表于 2024-8-14 23:38
c语言上位机解析,发送下位机也是一种办法啊

嗯,如果是MCU这边直接接收就处理呢?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:213
  • 最近打卡:2025-04-23 20:59:03
已绑定手机

36

主题

560

回帖

1885

积分

荣誉版主

积分
1885
发表于 2024-8-14 23:43:00 | 显示全部楼层
so*** 发表于 2024-8-14 23:38
c语言上位机解析,发送下位机也是一种办法啊

目前掌握了两种方式,一种是sscanf截取;一种是利用“或,根据规律去分段。
改天再发分段的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:172
  • 最近打卡:2025-03-18 07:54:03

0

主题

51

回帖

793

积分

高级会员

积分
793
发表于 2024-8-21 15:57:59 | 显示全部楼层
共同学习,共同进步!
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:17 , Processed in 0.169832 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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