首页 > 代码库 > CJSON实例详解
CJSON实例详解
先贴代码
1 #include <stdio.h> 2 #include "cJSON.h" 3 4 int main() 5 { 6 cJSON * pJsonRoot = NULL; 7 8 pJsonRoot = cJSON_CreateObject(); 9 if(NULL == pJsonRoot)10 {11 //error happend here12 return 0;13 }14 cJSON_AddStringToObject(pJsonRoot, "hello", "hello world");15 cJSON_AddNumberToObject(pJsonRoot, "number", 10010);16 cJSON_AddBoolToObject(pJsonRoot, "bool", 1);17 cJSON * pSubJson = NULL;18 pSubJson = cJSON_CreateObject();19 if(NULL == pSubJson)20 {21 // create object faild, exit22 cJSON_Delete(pJsonRoot);23 return 0;24 }25 cJSON_AddStringToObject(pSubJson, "subjsonobj", "a sub json string");26 cJSON_AddItemToObject(pJsonRoot, "subobj", pSubJson);27 28 char * p = cJSON_Print(pJsonRoot);29 if(NULL == p)30 {31 //convert json list to string faild, exit32 //because sub json pSubJson han been add to pJsonRoot, so just delete pJsonRoot, if you also delete pSubJson, it will coredump, and error is : double free33 cJSON_Delete(pJsonRoot);34 return 0;35 }36 printf("%s\n", p);37 38 return 0;39 }
centos下编译通过,运行如下:
1 {2 "hello": "hello world",3 "number": 10010,4 "bool": true,5 "subobj": {6 "subjsonobj": "a sub json string"7 }8 }
代码解释如下:
CJSON在内存中的存储方式是用链表进行存储的,所以在进行操作的时候,我们可见的部分全部是用指针进行操作的。
第8行新建一个JSON项目。
第14、15、16行分别添加了字符串、数字和bool变量。
第18行新建一个JSON项目:pSubJson。
第25行在新建的pSubJson项目上添加字符串。
第26行把我们的新项目添加到最初的项目pJsonRoot上。
第28行把CJSON的内存的存储的数据转换为字符串格式。
cjson库的下载地址在:http://pan.baidu.com/s/1ntsRLgt
CJSON实例详解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。