环境监测设备开发中通过cJSON解析JSON格式数据解析错误的原因

Posted 瑞奇Ricky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了环境监测设备开发中通过cJSON解析JSON格式数据解析错误的原因相关的知识,希望对你有一定的参考价值。

近年来,随着我国工业化的进程不断加快,从事个体农业生产的人越来越少,大部分农民转变成城市现代化的新时代工人。还有部分农民开始从事新型集体户农业种植、畜牧业养殖等。以物联网技术为基础的环境监测设备能够帮助农民在开展大规模畜牧业和农业时,提供科学化的实时监测。降低农民的工作量,帮助农民提高产量。

环境监测设备在大棚果蔬种植过程中能够对空气的种植环境的温度、湿度与光照数据进行监测,帮助农民实时了解大棚内的环境状态。同时环境监测设备还能运用在畜牧业养殖过程中,对于养殖的家禽类的生长环境进行监测。云息作为专业从事物联网环境监测设备开发的企业,经过专业的市场调查,开发出环境监测设备,不仅兼顾了环境实时监测的要求,还增加了震动报警、低电量报警等功能,当大棚或家禽舍出现异常状况时,农民能够在第一时间了解相关状况。


近期笔者收到了定制功能的环境监测设备项目中,遇到了通过cJSON解析JSON格式数据,解析错误的问题。

面对该问题首先需要排查问题产生的原因,流程如下:
利用串口传输JSON格式的数据用来配置设备参数,大概有十个键值对,实际使用的过程中可能只会发送一个或者几个的键值来配置特定的几个参数。在实际操作的时候发现有概率出现未配置的参数被修改的情况,检查后发现是没有判断检查键的句柄是否为空就直接进行提取赋值,所以在提取之前应该先判断句柄是否有效,在进行后续操作。
如下例子中,从数据中先判断是否有键“server”,然后判断句柄是否为NULL,在进行后续提取,因为句柄pSecond是在内存中申请的,无法确定其数值为多少,不进行判断就会造成错误。

在从事环境监测设备开发的工作人员,在遇到类似问题时可参考以上文档。

以上是关于环境监测设备开发中通过cJSON解析JSON格式数据解析错误的原因的主要内容,如果未能解决你的问题,请参考以下文章

JSON数据格式C语言解析库(cJSON)的使用&在STM32上移植和使用

CSON+CJSON,解析json数据更优雅?

C/C++ 关于 cJson 库的使用

html中通过js获取接口JSON格式数据解析以及跨域问题

C/C++ 使用cjson库 操作Json格式文件(创建插入解析修改删除)

C/C++ 使用cjson库 操作Json格式文件(创建插入解析修改删除)