1.cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item)
作用:将数组添加进对象
2.cJSON_CreateObject(void)
作用:创建项目数组
3.extern cJSON *cJSON_Parse(const char *value);
作用:首先调用cJSON_Parse()函数,解析JSON数据包,并按照cJSON结构体的结构序列化整个数据包。使用该函数会通过malloc()函数在内存中开辟一个空间,使用完成需要手动释放。
4.extern char *cJSON_Print(cJSON *item);
作用:将一个json对象转换成char *,但是这个字符串必须是手动删除
5.cJSON_GetObjectItem(const cJSON * const object, const char * const string);
作用: 调用cJSON_GetObjectItem()函数,可从cJSON结构体中查找某个子节点名称(键名称),如果查找成功可把该子节点序列化到cJSON结构体中。
6.cJSON_PrintUnformatted(const cJSON *item)
作用:将json对象转换成普通的字符串,并且都是以该json对象的根为基点。两个API的区别即是:一个是没有格式的:也就是转换出的字符串中间不会有"\n" "\t"之类的东西存在,而cJSON_Print(root);打印出来是人看起来很舒服的格式。
7.cJSON_CreateArray()
作用:创建数组
8.cJSON_Duplicate(const cJSON *item, cJSON_bool recurse)
作用:复制一个副本 ,recurse:1 递归子元素。创建一个新的完全相同 cJSON item.
9.cJSON_GetObjectItem(const cJSON * const object, const char * const string)
作用:功能:获取json指定的对象成员
参数:*objec:第一个函数中获取的句柄。
string:需要获取的对象
返回值:这个对象成员的句柄 如果json格式的对象成员直接就是字符串那么就可以直接通过结构体中的valuestring元素来获取这个成员的值
10.cJSON *cJSON_GetArrayItem(cJSON *array,int item);
功能:有可能第二个函数中获取到的是成员对象值是一个数组,那么就需要用到这个函数。用来获取这个数组指定的下标对象
参数:*array:传入第二步中返回的值
item:想要获取这个数组的下标元素
返回值:这个数组中指定下标的对象。然后在对这个返回值重复使用第二步函数就可以获取到各个成员的值了。也就是说对象是数组的比是字符串的要多用一个cJSON_GetArrayItem函数,其他的没区别。
11.cJSON_DetachItemFromObjectCaseSensitive(cJSON *object, const char *string)
作用:函数来从对象中分离出一个元素,从函数命名可以看出对于指定的键值是大小写敏感的,它将会返回被分离的数组。为避免内存泄漏,确保将返回值赋值给一个指针
12.cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item)
作用:使用cJSON_AddItemToArray函数可以在数组的最后增加元素。使用cJSON_AddItemReferenceToArray函数将会增加一个元素去引用其他的节点,这就意味着cJSON_Delete不会去删除这个元素的child或者valuestring属性,因此当这些属性在其他地方使用的时候,不用担心重复释放内存的事情发生。使用cJSON_InsertItemInArray函数可以将一个新元素插入数组中的0索引的位置,旧的元素的索引依次加1。/* 将对项的引用附加到指定的数组/对象。当您想要将现有的cJSON添加到新的cJSON中,但又不想破坏现有的cJSON时,请使用此选项 */
13.cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item)
作用:就是在object这个链表的最后面加一个item结构体,且将string赋值给item->string
14.cJSON_GetStringValue(cJSON *item)
作用:得到字符串的值
15.cJSON_GetErrorPtr(void)
作用:当传入的字符串解析失败就返回解析失败处的地址后边的字符串!
16.cJSON_GetObjectItemCaseSensitive(const cJSON * const object, const char * const string)
作用:访问对象中的某一个元素。在object里获取和string一样的字符。