cJSON的使用方法_rotation博客-CSDN博客_cjson使用首先,要介绍一下什么是json格式。一.JSON格式简述JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但https://blog.csdn.net/fengxinlinux/article/details/53121287若干说明
1. cJSON_CreateObject函数可创建一个根数据项,之后便可向该根数据项中添加string或int等内容,返回的是一个 cJSON的指针,注意,在这个指针用完了以后,需要手工调用 cJSON_Delete(root); 进行内存回收。
2. cJSON_AddNumberToObject向节点中添加子节点,例如此处添加name节点,节点值为字符串"fengxin"
3. 需要注意的是 json 格式的数据,虽然也是一个字符串的样子,但这个时候还是无法当成普通的字符串进行使用,需要调用 cJSON_PrintUnformatted(root) 或者 cJSON_Print(root);来将json对象转换成普通的字符串,并且都是以该json对象的根为基点。两个API的区别即是:一个是没有格式的:也就是转换出的字符串中间不会有"\n" "\t"之类的东西存在,而cJSON_Print(root);打印出来是人看起来很舒服的格式。
4. 因为函数内部封装有malloc函数,所以使用free函数释放被out占用的内存空间
其中加粗部分已验证,使用 cJSON_PrintUnformatted(root)确实为无格式输出,便于对数据进行下一步处理。
eg:
char *pstr = cJSON_PrintUnformatted(root); //无格式的CJson
cJSON_Delete(root);
printf("%s\n",pstr);
free(pstr);
输出结果:
// 打印并释放
char *pstr = cJSON_Print(root);
cJSON_Delete(root);
printf("%s\n",pstr);
free(pstr);
输出: