cJSON
2020-04-15 17:01:14 0 举报
cJSON开源库详解
作者其他创作
大纲/内容
cJson_PrintUnformatted
获取对象中的名字为string字符串子对象
cJson_Print的处理方式:每次判断需要缓冲的长度,然后通过cJSON_malloc临时申请
typedef struct { char *buffer; //缓冲区地址 int length; //缓冲区大小 int offset; //缓冲区数据偏移量} printbuffer;
parse_number
static char * cJSON_strdup(const char * str)将字符串str的拷贝到一个新的内存中,并返回
print_object
无格式
cJSON_New_Item()创建一个cJSON对象
parse_string
cJSON_Delete()释放一个cJSON对象
print_array
cJson_Print
ensure(): 增加缓冲区大小
int cJSON_GetArraySize(cJSON *array)
parse_array
pow2gt(int x):得到比X大的最小的2的N次方数
调用该函数时,会使用一个printbuffer的结构体来推测缓冲区大小,这样不需要一步一步增加缓冲区大小
cJson_New_Item创建一个sJson
cJson_Parse
print_number
cJson_PrintBuffered
cJSON_malloc()
print_string
parse_object
update():新字符串添加到缓冲区后,更新printbuffer结构(偏移量)
获取数组的长度
获取数组的第item项
cJSON结构体
其他函数
print_value
printbuffer结构体
print_string_ptr
cJson是一个轻量级的json解析库。Json是一种轻量级的数据格式,便于机器解析和生成,并且易于人阅读和编写。
cJson_ParseWithOpts
cJSON_free()
parse_value
parse_hex4十六进制转换成10进制
suffix_object() //将两个cJSON对象用prev和next指针相连create_reference() //将传入的cJSON对象进行拷贝到新的内存空间中,并进行一些清空操作cJSON_AddItemToArray()cJSON_AddItemToObject()cJSON_AddItemToOjbec()一系列函数的操作都是将一个cJSON对象添加为另一个或多个cJSON对象的孩子cJSON_DetachItemFromArray() cJSON_DetachItemFromObject()从一个cJSON中将某一个子对象拆分下来,并返回。cJSON_DeleteItemFromArray()cJSON_DeleteItemFromObject()从一个cJSON中将某个子对象拆分下来,并释放内存cJSON_InsertItemInArray() //在cJSON_Array对象第i位置中插入一项cJSON_ReplaceItemInArray() //用一个新对象取代cJSON_Array对象第i个子对象cJSON_ReplaceItemInObject() //用一个新对象取代cJSON_Object对象中名字为string的子对象cJSON_CreateNullcJSON_CreateTrue...cJSON_CreateIntArray()...这一系列函数用来创建对应的对象,包括cJSON的类型和不同类型的数组cJSON_Duplicate() //递归复制一个对象cJSON_Minify(char * json) //对文件字符串进行压缩,去除所有注释和空格该函数用一个char * into = json变量,如果是空格和注释则跳过,否则将字符赋给into,即放在json的开头部分。如果遍历结束,将末尾赋值为0,表示字符串结尾。
{ \"name\": \"Jack (\\\"Bee\\\") Nimble\
0 条评论
下一页