cJSON 函数简单使用

  • Post author:
  • Post category:其他


json

	"name":"ning",
	"age":"18",
	"addr":{
			"sheng":"guang",
			"shi":"zhu",
			},
	"tell":"1019",
	"edu":[
		{"xiao":"A"},
		{"chu":"B"}
	]
//创建cjson对象节点
1.cJSON_CreateObject();创建对象
2.cJSON_CreateArray;创建数组
举例:cJSON * root = cJSON_CreateObject();
//往对象添加string类型 键值
1.cJSON_AddNumberToObject();往对象中添加整型类
2.cJSON_AddStringToObject();往对象中添加字符类
3.cJSON_AddItemToObject();往对象中添加子节点
同理添加 “某键值是变量 可变为string 类型 number 类型 item 类型(子节点)”
cJSON_AddStringToObject("某对象","某键名","某键值");
举例:cJSON_AddStringToObject(root, "name","ning");
//从json对象中获取值
1.cJSON_GetObjectItem()获取一个 键值对的cJSON对象
cJSON * dev = cJSON_GetObjectItem(root,"name");
dev->valuestring== "ning"
2.cJSON_ReplaceItemInObject()替代对象中的一个键值对的值
cJSON_ReplaceItemInObject(root, "name", "liu");//将"name":"ning"-替换为"name":"liu"

3.cJSON_GetArraySize(cJSON * arr)获取数组节点的个数
cJSON * arr = cJSON_GetObjectItem(root,"edu");//先获取数组对象
int size = cJSON_GetArraySize(arr ); //size == 2

4.cJSON_GetArrayItem()获取数组节点中的第几个对象
cJSON * arr_0 = cJSON_GetArrayItem(arr , 0);
arr_0->valuestring == A;
5.cJSON_GetObjectItemCaseSensitive(inf,"name");获取你要的key所对应的value   与1相似功能,区别在于区分大小写
	cJSON_cJSON_GetObjectItemCaseSensitive(root,"name");
//6.7是一对的,同时出现才不会造成内存泄漏
6.cJSON_free(char * a);释放空间
7.char * cJSON_Print(cJSON * data)将cJSON对象转化为字符串
char * od = cJSON_Print(old_data);
//8.9为一对,同时使用才不会造成内存泄漏
8. cJSON * cJSON_Parse(char * a)将字符串转换为cJSON对象
	old_data = cJSON_Parse(content);	
9.cJSON_Delete(cJSON * data)删除并释放空间 会遍历整个链表释放。



版权声明:本文为uyihjigthgh原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。