Yim_Hom 发表于 2024-8-14 22:32:36

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

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

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


编译以后的结果如下:


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







Yim_Hom 发表于 2024-8-14 23:19:21


后面修改了一下,用strcmp去比较相等,如果结果为0再去输出打印字符结果。

soma 发表于 2024-8-14 23:38:35

c语言上位机解析,发送下位机也是一种办法啊

Yim_Hom 发表于 2024-8-14 23:41:09

soma 发表于 2024-8-14 23:38
c语言上位机解析,发送下位机也是一种办法啊

嗯,如果是MCU这边直接接收就处理呢?

Yim_Hom 发表于 2024-8-14 23:43:00

soma 发表于 2024-8-14 23:38
c语言上位机解析,发送下位机也是一种办法啊

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

liulei 发表于 2024-8-21 15:57:59

共同学习,共同进步!
页: [1]
查看完整版本: 入门IoT学习过程中的一点小心得(1):简单的方式解析json数据