概述:
在嵌入式开发过程中,我们在与服务器通信过程可能会使用json包形式传输数据,那cJSON这个轻量库就要登场了。由于cJSON库只需使用cJSON.c和cJSON.h这两个文件,我们一般就直接拿过来用啦。通过这个库我们可以轻松的实现json数据包的封包解包。这里是我整理的一个demo,基本注释都在代码注释,还有注意事项,平时使用到的基本全部都用到了,所以看这个实例找到你需要的部分用起来就OK了。
实例Demo:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include "./cjson/cJSON.h"
/*
注意:
通过cJSON_PrintUnformatted(),cJSON_Print()函数返回的字符串需要手动free(释放空间)
cJSON_CreateObject()函数创造的数据不使用时需要使用cJSON_Delete()释放空间
*/
/*cJSON的基本封装*/
cJSON *basic_cjson_pkg(void)
{
cJSON *root = cJSON_CreateObject();
if (NULL == root) {
return NULL;
}
cJSON_AddNumberToObject(root, "action", 666);
cJSON *data = cJSON_CreateObject();
if (NULL == data) {
goto err1;
}
cJSON_AddStringToObject(data, "user", "Sky.J");
cJSON_AddStringToObject(data, "pwd", "123456");
cJSON_AddItemToObject(root, "data", data);
return root;
err1:
cJSON_Delete(root);
return NULL;
}
/*cJSON的基本解析*/
void basic_cjson_sys(cJSON *root)
{
if (NULL == root) {
return ;
}
//将json包