cJSON库介绍
cJSON是使用C语言编写的JSON数据解析器,轻量级。使用MIT开源协议。
库地址 CJSON
库的移植安装
从github把压缩文件下载到本地,打开文件,调用cjson.c和cjson.h即可。
#include "cjson.h"
库的使用
要使用cJSON库首先要对cJSON语法有一定了解。
语法概要:
作者认为cJSON中最重要的概念是对象。json中的对象有两种形式{}或【】。可以通俗地理解为一个大括号或一个中括号对应一个对象。(其实分别是js对象和js数组,但这个数组也可以当做对象)。
在一个对象中可以有多个键值对:key-value。键值对存储着我们所需的数据。
对象中还可以包含别的对象,这就是对象的嵌套。比如在一个{}中可以加入数组【】
cJSON常用API
创建对象:创建一个JSON对象
cJSON_CreateObject()
生成字符串数据
cJSON_CreateString()
添加数据项:将上一步生成的数据项与其键值一起添加到对象中
cJSON_AddItemToObject(,,)
生成字符串:将json对象的内容转化为字符串
cJSON_Print()
创建数组:生成数组对象
cJSON_CreateArray()
取数组成员
cJSON_AddItemToArray()
案例分享
作者在stm32机上新建了一个工程,需要通过串口将JSON字符串传输到通信模块BC20上,以连接华为云。
与华为云物联网平台通信的JSON字符串格式如下:
"{"services": [{"service_id": "***服务ID号***","properties":{"longitude":****.***,"weight":****.*****,"latitude":***.****,"status":*,"rank":*,"color":**.***}}]}"
我们现在需要生成JSON对象并且添加所需的数据
方法:
1.数{}【】个数。我们可以发现有三个{}和一个【】,那么我们需要创建四个对象
2.向最里层对象写数据
3.将里层对象添加到上一层对象里
4.重复操作2.3