cjson是一个开源的C文件,可以实现用C语言生成json格式数据,

目录

步骤1:准备工作步骤2:cjson函数简单讲解步骤3:一个例子, 生成json格式数据

步骤1:准备工作

在keil里添加cjson.c和cjson.h,cjson文件下载,使用微云,不要积分

main.c里引用cjson.h

#include

步骤2:cjson函数简单讲解

首先需要创建一个cjson的指针,用于存储数据,

cJSON *cjson_head=NULL;

然后使用添加函数,添加数字和字符要使用不同的函数,

#添加字符

cJSON_AddStringToObject(cjson_head, "name", "mculover666");

#添加数字

cJSON_AddNumberToObject(cjson_head,"age",22);

完成后,想使用json时,因为是一个指针,无法直接使用,需要用一个字符串接收格式化后的json格式

char *str=NULL;

str = cJSON_Print(cjson_head);

printf("%s\n", str);

此时,直接使用str即可,通过串口输出或者通过4G发送,MQTT发送等等。 更复杂的,json格式可以嵌套,这会在步骤3里展示。

步骤3:一个例子, 生成json格式数据

#include

#include

#创建cjson的指针,用于存储数据,可以创建多个

cJSON *cjson_head=NULL;

cJSON *cjson_address=NULL;

cJSON *cjson_skill=NULL;

char *str=NULL;

int main()

{

cjson_head=cJSON_CreateObject();

// add string to cjson

cJSON_AddStringToObject(cjson_head, "name", "mculover666");

//add number to cjson

cJSON_AddNumberToObject(cjson_head,"age",22);

//add float to cjson

cJSON_AddNumberToObject(cjson_head, "weight", 55.5);

/* 添加一个嵌套的JSON数据(添加一个链表节点) */

cjson_address = cJSON_CreateObject();

cJSON_AddStringToObject(cjson_address, "country", "China");

cJSON_AddNumberToObject(cjson_address, "zip-code", 111111);

cJSON_AddItemToObject(cjson_head, "address", cjson_address);

/* 添加一个数组类型的JSON数据(添加一个链表节点) */

cjson_skill = cJSON_CreateArray();

cJSON_AddItemToArray(cjson_skill, cJSON_CreateString( "C" ));

cJSON_AddItemToArray(cjson_skill, cJSON_CreateString( "Java" ));

cJSON_AddItemToArray(cjson_skill, cJSON_CreateString( "Python" ));

cJSON_AddItemToObject(cjson_head, "skill", cjson_skill);

/* 添加一个值为 False 的布尔类型的JSON数据(添加一个链表节点) */

cJSON_AddFalseToObject(cjson_head, "student");

/* 打印JSON对象(整条链表)的所有数据 */

str = cJSON_Print(cjson_head);

printf("%s\n", str);

return 0;

}

运行结果为

{

"name": "mculover666",

"age": 22,

"weight": 55.5,

"address": {

"country": "China",

"zip-code": 111111

},

"skill": ["C", "Java", "Python"],

"student": false

}

如果有帮到你,请点个赞。

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: