cjson解析和生成json数据

一 解析数据
将json包生成cjson的结构体
cJSON *cJSON_Parse(const char *value);
根据键值对的名称从链表中取出对应的值
(cJSON *) cJSON_GetObjectItem(const cJSON * const object, const char * const string);
如果JSON数据的值是数组,使用下面的两个API提取数据
(int) cJSON_GetArraySize(const cJSON *array);
(cJSON *) cJSON_GetArrayItem(const cJSON *array, int index);
二 生成数据
创建节点
cJSON *IOTJSObject = NULL;
(IOTJSObject = cJSON_CreateObject()) != NULL
创建数组
cJSON *attrhexArray;
attrhexArray = cJSON_CreateArray();
将节点添加到数组
cJSON_AddItemToArray(attrhexArray, ArrayItem);
将数组添加到节点
cJSON_AddItemToObject(IOTJSObject, “data”, attrhexArray);

cJSON_PrintUnformatted(in);对创建的json不带格式输出,即对每一个元组不用换行分隔
需要注意的是 json 格式的数据,虽然也是一个字符串的样子,但这个时候还是无法当成普通的字符串进行使用,需要调用 cJSON_PrintUnformatted(root) 或者cJSON_Print(root);来将json对象转换成普通的字符串,并且都是以该json对象的根为基点。两个API的区别即是:一个是没有格式的:也就是转换出的字符串中间不会有"\n" "\t"之类的东西存在,而cJSON_Print(root);打印出来是人看起来很舒服的格式。
注:(1)cJSON_Print会申请内存,使用完后要free掉。
(2)使用cJSON_Parse创建一个 cJSON指针后,用完务必 使用 cJSON_Delete函数释放 该cJSON指针。
(3)使用cJSON_Createxxx函数创建 json对象后, 用完务必使用 cJSON_Delete函数释放 该cJSON指针。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值