概述
有一个需求,使用C语言,通过cJSON来操作json。流程如下:
1、创建一个空的根json对象,并打印json字符串。
2、判断json中是否存在键"mode_1",不存在则打印信息
3、json中不存在键"mode_1",创建一个键为"mode_1",值均为26的int类型数组,数组长度为32 。
4、将新创建的"mode_1"对象添加到根json对象中,并打印json字符串。
5、判断json中是否存在键"mode_2",不存在则打印信息
6、json中不存在键"mode_2",创建一个键为"mode_2",值均为22的int类型数组,数组长度为32 。
7、将新创建的"mode_2"对象添加到根json对象中,并打印json字符串。
8、将"mode_1"数组的第三个值修改为25 ,并打印json字符串。
最终要打印的内容如下:
{
"mode_1": [26, 26, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26],
"mode_2": [22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22]
}
代码实现:
#include <stdio.h>
#include "cJSON.h"
int main()
{
cJSON *json;
//创建json根节点
json = cJSON_CreateObject();
printf("%sn", cJSON_Print(json));//"{}"
//查询某个键对应是否存在
cJSON *item;
item = cJSON_GetObjectItem(json, "mode_1");
if(item == NULL)
{
printf("item = NULLn");
//创建一个jsonarray
int ints[32] = {0};
for(int i = 0; i < 32; i++)
{
ints[i] = 26;
}
item = cJSON_CreateIntArray(ints, 32);
}
if(item != NULL)
{
cJSON_AddItemToObject(json, "mode_1", item);
}
printf("%sn", cJSON_Print(json));
item = cJSON_GetObjectItem(json, "mode_2");
if(item == NULL)
{
printf("item = NULLn");
//创建一个jsonarray
int ints[32] = {0};
for(int i = 0; i < 32; i++)
{
ints[i] = 22;
}
item = cJSON_CreateIntArray(ints, 32);
}
if(item != NULL)
{
cJSON_AddItemToObject(json, "mode_2", item);
}
printf("%sn", cJSON_Print(json));
//修改数组中的某个值
item = cJSON_GetObjectItem(json, "mode_1");
if(item != NULL)
{
//修改数据第3个键对应的值为 25
cJSON *int_v;
int_v = cJSON_CreateNumber(25);
cJSON_ReplaceItemInArray(item, 2, int_v);
}
printf("%sn", cJSON_Print(json));
cJSON_Delete(json);
}
效果如下:
以上,仅供参考cJSON的使用方法。
最后
以上就是热心小松鼠为你收集整理的Linux C语言使用cJSON操作json的全部内容,希望文章能够帮你解决Linux C语言使用cJSON操作json所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复