获取json版本号
CJSON_PUBLIC(const char*) cJSON_Version(void);
设置自定义内存分配函数
CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks);
解析 JSON 字符串并将其转换为 cJSON 数据结构
CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value);
用于解析指定长度的 JSON 字符串
CJSON_PUBLIC(cJSON *) cJSON_ParseWithLength(const char *value, size_t buffer_length);
cJSON 库中的一个高级解析函数,用于解析 JSON 字符串,并提供选项以控制解析行为。
CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated);
参数:
value:要解析的 JSON 字符串。
return_parse_end:解析结束的位置指针,用于获取解析停止的位置(通常指向 JSON 字符串中未处理的部分)。如果不需要该功能,可以传入 NULL。
require_null_terminated:布尔值,指定是否要求 JSON 字符串以 null 结尾。如果为 true,JSON 必须是以 null 结尾的标准 C 字符串;否则,可以允许非 null 终止的 JSON 数据。返回值:
解析成功时返回一个指向 cJSON 对象的指针。
解析失败时返回 NULL,可以通过 cJSON_GetErrorPtr 获取出错位置。
在指定长度的 JSON 字符串上执行解析,同时提供额外的选项以更灵活地控制解析行为。
CJSON_PUBLIC(cJSON *) cJSON_ParseWithLengthOpts(const char *value, size_t buffer_length, const char **return_parse_end, cJSON_bool require_null_terminated);
参数:
value:待解析的 JSON 字符串。
buffer_length:value 中 JSON 数据的长度。
return_parse_end:解析结束的位置指针,用于获取解析停止的位置。如果不需要获取解析结束位置,可传入 NULL。
require_null_terminated:布尔值,指定 JSON 字符串是否要求以 null 结尾。如果为 true,JSON 字符串必须以 null 结尾;如果为 false,可以解析非空终止的 JSON 数据。返回值:
解析成功时返回指向 cJSON 对象的指针。
解析失败时返回 NULL,可以通过 cJSON_GetErrorPtr 获取出错位置。
用于将 cJSON 对象转化为格式化的 JSON 字符串,便于输出和查看。
CJSON_PUBLIC(char *) cJSON_Print(const cJSON *item);
参数:
item:指向要打印的 cJSON 对象。返回值:
返回一个指向生成的格式化 JSON 字符串的指针。这个字符串是动态分配的,需要在使用完成后手动释放(使用 free 函数)。
用于将 cJSON 对象转化为未经格式化的紧凑 JSON 字符串。与 cJSON_Print 不同,cJSON_PrintUnformatted 输出的 JSON 字符串没有换行和缩进,更适合在需要节省存储空间的场景中使用。
CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item);
参数:
item:指向要转换的 cJSON 对象。返回值:
返回一个指向生成的紧凑 JSON 字符串的指针。该字符串是动态分配的,使用完后需要手动释放(使用 free 函数)。
用于将 cJSON 对象转换为格式化的 JSON 字符串,并在生成时更有效地分配内存,适合处理较大 JSON 数据的场景。与 cJSON_Print 不同的是,cJSON_PrintBuffered 允许指定缓冲区的大小和控制内存分配。
CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cJSON_bool fmt);
参数:
item:要转换的 cJSON 对象。
prebuffer:预分配的缓冲区大小(以字节为单位)。如果预先知道 JSON 大小,可以设置此值来减少内存重新分配的次数。
fmt:布尔值,用于指定是否格式化输出。
设置为 1 (true):生成带缩进和换行的格式化 JSON 字符串。
设置为 0 (false):生成紧凑的 JSON 字符串。返回值:
返回一个指向生成的 JSON 字符串的指针。这个字符串是动态分配的,使用完后需要手动释放(使用 free 函数)。
用于在预先分配的缓冲区中打印 JSON 对象。与其他 cJSON_Print 函数不同,cJSON_PrintPreallocated 允许使用预分配的内存块来存储生成的 JSON 字符串,避免动态内存分配,适合内存管理严格的环境。
CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON *item, char *buffer, const int length, const cJSON_bool format);
参数:
item:指向要打印的 cJSON 对象。
buffer:指向预分配的缓冲区,用于存储生成的 JSON 字符串。
length:缓冲区大小(以字节为单位),应足够大以容纳整个 JSON 字符串。
format:布尔值,用于控制是否格式化输出。
设置为 1 (true):生成带缩进和换行的格式化 JSON 字符串。
设置为 0 (false):生成紧凑的 JSON 字符串。返回值:
返回 cJSON_bool 类型。
true 表示成功。
false 表示失败(缓冲区长度不足时将返回失败)。
用于释放由 cJSON 对象占用的内存。任何通过 cJSON 创建的对象都应在不再需要时使用 cJSON_Delete 释放,以避免内存泄漏。
CJSON_PUBLIC(void) cJSON_Delete(cJSON *item);
参数:
item:指向要删除的 cJSON 对象的指针。
用于获取 JSON 数组中元素的数量。该函数非常有用,尤其在处理未知长度的 JSON 数组时,可以帮助您遍历整个数组。
CJSON_PUBLIC(int) cJSON_GetArraySize(const cJSON *array);
参数:
array:指向一个 cJSON 对象,且该对象应为 JSON 数组。返回值:
如果参数是一个有效的 JSON 数组,返回数组中元素的数量。
如果参数为空或不是 JSON 数组,返回 0。
用于获取 JSON 数组中指定索引位置的元素。此函数在处理 JSON 数组时非常有用,可以通过索引访问数组中的每个元素。
CJSON_PUBLIC(cJSON *) cJSON_GetArrayItem(const cJSON *array, int index);
参数:
array:指向一个 cJSON 对象,该对象必须是一个 JSON 数组。
index:要获取的数组元素的索引(从 0 开始)。返回值:
返回指向指定索引的 cJSON 对象指针。如果索引超出范围或数组为空,则返回 NULL。
用于从 JSON 对象中获取指定键的值。该函数在处理 JSON 对象时非常有用,可以通过键名快速访问相应的值。
CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON * const object, const char * const string);
参数:
object:指向一个 cJSON 对象,该对象必须是一个 JSON 对象。
string:要查找的键名(以 C 字符串形式)。返回值:
返回指向指定键的 cJSON 对象指针。如果指定的键不存在,或参数不是有效的 JSON 对象,则返回 NULL。
用于从 JSON 对象中获取指定键的值,并且该函数对键的大小写敏感。这意味着只有完全匹配(包括大小写)的键才能找到对应的值。
CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * const object, const char * const string);
参数:
object:指向一个 cJSON 对象,该对象必须是一个 JSON 对象。
string:要查找的键名(以 C 字符串形式)。返回值:
返回指向指定键的 cJSON 对象指针。如果指定的键不存在,或参数不是有效的 JSON 对象,则返回 NULL。
用于检查 JSON 对象中是否存在指定的键。这个函数在处理 JSON 数据时非常有用,特别是当你想要验证某个键是否存在于对象中时。
CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON *object, const char *string);
参数:
object:指向一个 cJSON 对象,该对象必须是一个 JSON 对象。
string:要查找的键名(以 C 字符串形式)。返回值:
如果指定的键存在,返回 cJSON_true。
如果指定的键不存在或参数不是有效的 JSON 对象,返回 cJSON_false。
用于从 cJSON 对象中获取字符串值。这个函数非常方便,因为它简化了从字符串类型的 cJSON 对象中提取值的过程。
CJSON_PUBLIC(char *) cJSON_GetStringValue(const cJSON * const item);
参数:
item:指向一个 cJSON 对象,该对象必须是一个字符串类型。返回值:
返回指向字符串的指针。如果 item 不是字符串类型,则返回 NULL。
用于从 cJSON 对象中获取数字值。这个函数简化了从数字类型的 cJSON 对象中提取值的过程。
CJSON_PUBLIC(double) cJSON_GetNumberValue(const cJSON * const item);
参数:
item:指向一个 cJSON 对象,该对象必须是数字类型。返回值:
返回 item 中存储的数字值(以 double 类型返回)。
如果 item 不是数字类型,返回值为 0.0。
用于检查 cJSON 对象是否有效。这个函数常用于判断一个 cJSON 对象是否处于无效状态(例如,尚未初始化或已被释放)。
CJSON_PUBLIC(cJSON_bool) cJSON_IsInvalid(const cJSON * const item);
参数:
item:指向一个 cJSON 对象。返回值:
如果 item 是无效的,返回 cJSON_true。
如果 item 是有效的,返回 cJSON_false。
用于检查 cJSON 对象是否表示布尔值 false。这个函数在处理 JSON 数据时非常有用,特别是当需要判断某个值是否为 false 时。
CJSON_PUBLIC(cJSON_bool) cJSON_IsFalse(const cJSON * const item);
参数:
item:指向一个 cJSON 对象,该对象应为布尔类型。返回值:
如果 item 表示 false,返回 cJSON_true。
如果 item 不是布尔类型,或者表示 true,则返回 cJSON_false。
用于检查 cJSON 对象是否表示布尔值 true。这个函数在处理 JSON 数据时非常有用,特别是当需要判断某个值是否为 true 时。
CJSON_PUBLIC(cJSON_bool) cJSON_IsTrue(const cJSON * const item);
参数:
item:指向一个 cJSON 对象,该对象应为布尔类型。返回值:
如果 item 表示 true,返回 cJSON_true。
如果 item 不是布尔类型,或者表示 false,则返回 cJSON_false。
用于检查 cJSON 对象是否表示布尔值(true 或 false)。这个函数在处理 JSON 数据时非常有用,尤其是在需要确认某个值是否为布尔类型时。
CJSON_PUBLIC(cJSON_bool) cJSON_IsBool(const cJSON * const item);
参数:
item:指向一个 cJSON 对象。返回值:
如果 item 是布尔类型,返回 cJSON_true。
如果 item 不是布尔类型,返回 cJSON_false。
用于检查 cJSON 对象是否表示 null 值。这个函数在处理 JSON 数据时非常有用,尤其是在需要判断某个值是否为 null 时。
CJSON_PUBLIC(cJSON_bool) cJSON_IsNull(const cJSON * const item);
参数:
item:指向一个 cJSON 对象,该对象应为 null 类型。返回值:
如果 item 表示 null,返回 cJSON_true。
如果 item 不是 null 类型,返回 cJSON_false。
用于检查 cJSON 对象是否表示数字类型。这个函数在处理 JSON 数据时非常有用,特别是当需要确认某个值是否为数字时。
CJSON_PUBLIC(cJSON_bool) cJSON_IsNumber(const cJSON * const item);
参数:
item:指向一个 cJSON 对象。返回值:
如果 item 是数字类型,返回 cJSON_true。
如果 item 不是数字类型,返回 cJSON_false。
用于检查 cJSON 对象是否表示字符串类型。这个函数在处理 JSON 数据时非常有用,特别是当需要确认某个值是否为字符串时。
CJSON_PUBLIC(cJSON_bool) cJSON_IsString(const cJSON * const item);
参数:
item:指向一个 cJSON 对象。返回值:
如果 item 是字符串类型,返回 cJSON_true。
如果 item 不是字符串类型,返回 cJSON_false。
用于检查 cJSON 对象是否表示数组类型。这个函数在处理 JSON 数据时非常有用,特别是当需要确认某个值是否为数组时。
CJSON_PUBLIC(cJSON_bool) cJSON_IsArray(const cJSON * const item);
参数:
item:指向一个 cJSON 对象。返回值:
如果 item 是数组类型,返回 cJSON_true。
如果 item 不是数组类型,返回 cJSON_false。
用于检查 cJSON 对象是否表示对象类型。这个函数在处理 JSON 数据时非常有用,特别是当需要确认某个值是否为对象时。
CJSON_PUBLIC(cJSON_bool) cJSON_IsObject(const cJSON * const item);
参数:
item:指向一个 cJSON 对象。返回值:
如果 item 是对象类型,返回 cJSON_true。
如果 item 不是对象类型,返回 cJSON_false。
用于检查 cJSON 对象是否表示原始(raw)类型。原始类型通常是指不带引号的字符串,类似于 JSON 的某些特殊格式,例如未转义的文本。
CJSON_PUBLIC(cJSON_bool) cJSON_IsRaw(const cJSON * const item);
参数:
item:指向一个 cJSON 对象。返回值:
如果 item 是原始类型,返回 cJSON_true。
如果 item 不是原始类型,返回 cJSON_false。
用于创建一个表示 null 值的 cJSON 对象。这个函数在构建 JSON 数据时非常有用,尤其是在需要表示空值或缺失值的情况下。
CJSON_PUBLIC(cJSON *) cJSON_CreateNull(void);
返回值:
返回指向新创建的 cJSON 对象的指针,该对象表示 null 值。如果内存分配失败,则返回 NULL。
用于创建一个表示布尔值 true 的 cJSON 对象。这个函数在构建 JSON 数据时非常有用,尤其是在需要表示真值的情况下。
CJSON_PUBLIC(cJSON *) cJSON_CreateTrue(void);
返回值:
返回指向新创建的 cJSON 对象的指针,该对象表示布尔值 true。如果内存分配失败,则返回 NULL。
用于创建一个表示布尔值 false 的 cJSON 对象。这个函数在构建 JSON 数据时非常有用,尤其是在需要表示假值的情况下。
CJSON_PUBLIC(cJSON *) cJSON_CreateFalse(void);
返回值:
返回指向新创建的 cJSON 对象的指针,该对象表示布尔值 false。如果内存分配失败,则返回 NULL。
创建一个表示布尔值的 cJSON 对象(true 或 false)
CJSON_PUBLIC(cJSON *) cJSON_CreateBool(cJSON_bool boolean);
参数:
boolean:布尔值,cJSON_true 表示 true,cJSON_false 表示 false。返回值:
返回指向新创建的 cJSON 对象的指针,表示传入的布尔值。如果内存分配失败,则返回 NULL。
创建一个表示数字值的 cJSON 对象。
CJSON_PUBLIC(cJSON *) cJSON_CreateNumber(double num);
参数:
num:要创建的数字(可以是整数或浮点数)。返回值:
返回指向新创建的 cJSON 对象的指针。
创建一个表示字符串值的 cJSON 对象。
CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string);
参数:
string:要创建的字符串。返回值:
返回指向新创建的 cJSON 对象的指针。
创建一个表示原始字符串值的 cJSON 对象,通常用于未加引号的文本。
CJSON_PUBLIC(cJSON *) cJSON_CreateRaw(const char *raw);
参数:
raw:要创建的原始字符串。返回值:
返回指向新创建的 cJSON 对象的指针。
创建一个空的 cJSON 数组对象。
CJSON_PUBLIC(cJSON *) cJSON_CreateArray(void);
返回值:
返回指向新创建的 cJSON 数组的指针。
创建一个空的 cJSON 对象。
CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void);
返回值:
返回指向新创建的 cJSON 对象的指针。
创建一个字符串引用,不会复制字符串,只引用原始字符串。
CJSON_PUBLIC(cJSON *) cJSON_CreateStringReference(const char *string);
参数:
string:要引用的字符串。返回值:
返回指向新创建的 cJSON 对象的指针。
创建一个对象引用。
CJSON_PUBLIC(cJSON *) cJSON_CreateObjectReference(const cJSON *child);
参数:
object:要引用的 cJSON 对象。返回值:
返回指向新创建的 cJSON 对象的指针。
创建一个数组引用。
CJSON_PUBLIC(cJSON *) cJSON_CreateArrayReference(const cJSON *child);
参数:
array:要引用的 cJSON 数组。返回值:
返回指向新创建的 cJSON 对象的指针。
创建一个整数数组对象。
CJSON_PUBLIC(cJSON *) cJSON_CreateIntArray(const int *numbers, int count);
参数:
numbers:指向整数数组的指针。
count:数组元素的数量。返回值:
返回指向新创建的 cJSON 数组的指针。
创建一个浮点数数组对象。
CJSON_PUBLIC(cJSON *) cJSON_CreateFloatArray(const float *numbers, int count);
参数:
numbers:指向浮点数数组的指针。
count:数组元素的数量。返回值:
返回指向新创建的 cJSON 数组的指针。
创建一个双精度浮点数数组对象。
CJSON_PUBLIC(cJSON *) cJSON_CreateDoubleArray(const double *numbers, int count);
参数:
numbers:指向双精度浮点数数组的指针。
count:数组元素的数量。返回值:
返回指向新创建的 cJSON 数组的指针。
创建一个字符串数组对象。
CJSON_PUBLIC(cJSON *) cJSON_CreateStringArray(const char *const *strings, int count);
参数:
strings:指向字符串数组的指针。
count:数组元素的数量。返回值:
返回指向新创建的 cJSON 数组的指针。
向数组中添加一个新项。
CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToArray(cJSON *array, cJSON *item);
参数:
array:要添加项的 cJSON 数组。
item:要添加的 cJSON 对象。返回值:
返回 true 表示成功将项添加到数组中。
返回 false 表示添加失败,可能是由于传入的数组或项为 NULL。
向对象中添加一个新项。
CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item);
参数:
object:要添加项的 cJSON 对象。
string:键名。
item:要添加的 cJSON 对象。返回值:
返回 true 表示成功将项添加到数组中。
返回 false 表示添加失败,可能是由于传入的数组或项为 NULL。
向对象中添加一个新项,键名区分大小写。
CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJSON *item);
参数:
object:要添加项的 cJSON 对象。
string:键名。
item:要添加的 cJSON 对象。返回值:
返回 true 表示成功将项添加到数组中。
返回 false 表示添加失败,可能是由于传入的数组或项为 NULL。
向数组中添加一个引用项(不会复制)。
CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item);
参数:
array:要添加项的 cJSON 数组。
item:要添加的 cJSON 对象(不会复制)。返回值:
返回 true 表示成功将项添加到数组中。
返回 false 表示添加失败,可能是由于传入的数组或项为 NULL。
向对象中添加一个引用项(不会复制)。
CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item);
参数:
object:要添加项的 cJSON 对象。
string:键名。
item:要添加的 cJSON 对象(不会复制)。返回值:
返回 true 表示成功将项添加到数组中。
返回 false 表示添加失败,可能是由于传入的数组或项为 NULL。
通过指针从对象或数组中分离一个项。
CJSON_PUBLIC(cJSON *) cJSON_DetachItemViaPointer(cJSON *parent, cJSON * const item);
参数:object:要分离项的对象或数组。
item:要分离的项。返回值:
返回被分离的 cJSON 对象指针。
从数组中分离一个项。
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which);
参数:array:要分离项的 cJSON 数组。
which:要分离的项的索引。返回值:
返回被分离的 cJSON 对象指针。
从数组中删除一个项。
CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON *array, int which);
从对象中分离一个项。
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON *object, const char *string);
参数:
array:要删除项的 cJSON 数组。
which:要删除的项的索引。返回值:
返回指向被移除项的指针(cJSON *)。如果指定的键不存在,返回 NULL。
从对象中分离一个项,区分大小写。
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObjectCaseSensitive(cJSON *object, const char *string);
参数:
object:要分离项的 cJSON 对象。
string:要分离的键名。返回值:
返回被分离的 cJSON 对象指针。
从对象中删除一个项。
CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON *object, const char *string);
参数:
object:要删除项的 cJSON 对象。
string:要删除的键名。
从对象中删除一个项,区分大小写。
CJSON_PUBLIC(void) cJSON_DeleteItemFromObjectCaseSensitive(cJSON *object, const char *string);
参数:
object:要删除项的 cJSON 对象。
string:要删除的键名。
在数组的指定位置插入一个项。
CJSON_PUBLIC(cJSON_bool) cJSON_InsertItemInArray(cJSON *array, int which, cJSON *newitem); /* Shifts pre-existing items to the right. */
参数:
array:要插入项的 cJSON 数组。
which:要插入的位置。
newitem:要插入的 cJSON 对象。返回值:
返回 true 表示成功在数组中插入了新的项。
返回 false 表示插入失败,可能是因为提供的数组或索引无效。
用新项替换已存在的项。
CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemViaPointer(cJSON * const parent, cJSON * const item, cJSON * replacement);
参数:
parent:包含要替换项的 cJSON 对象或数组。
item:要替换的 cJSON 对象。
replacement:新的 cJSON 对象。返回值:
返回 true 表示成功替换。
返回 false 表示替换失败。
用新项替换数组中的项。
CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem);
参数:
array:要替换项的 cJSON 数组。
which:要替换的项的索引。
newitem:新的 cJSON 对象。返回值:
返回 true 表示成功替换。
返回 false 表示替换失败,可能是因为提供的数组或索引无效。
用新项替换对象中的项。
CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObject(cJSON *object,const char *string,cJSON *newitem);
参数:
object:要替换项的 cJSON 对象。
string:要替换的键名。
newitem:新的 cJSON 对象。返回值:
返回 true 表示成功替换。
返回 false 表示替换失败,可能是因为提供的对象或键无效。
用新项替换对象中的项,区分大小写。
CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObjectCaseSensitive(cJSON *object,const char *string,cJSON *newitem);
参数:
object:要替换项的 cJSON 对象。
string:要替换的键名。
newitem:新的 cJSON 对象。返回值:
返回 true 表示成功替换。
返回 false 表示替换失败,可能是因为提供的对象或键无效。
复制一个 cJSON 对象。
CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recurse);
参数:item:要复制的 cJSON 对象。
recurse:是否递归复制子项(1 为是,0 为否)。返回值:返回复制的 cJSON 对象指针。
比较两个 cJSON 对象是否相等。
CJSON_PUBLIC(cJSON_bool) cJSON_Compare(const cJSON * const a, const cJSON * const b, const cJSON_bool case_sensitive);
参数:
a:第一个 cJSON 对象。
b:第二个 cJSON 对象。返回值:
相等返回 1,不相等返回 0。
去除 JSON 字符串中的多余空白字符。
CJSON_PUBLIC(void) cJSON_Minify(char *json);
参数:
json:要压缩的 JSON 字符串。返回值:
返回指向最小化后的 JSON 字符串的指针。
返回的字符串是原始字符串的副本,包含去除空白后的内容。需要调用 free 函数来释放内存。
向对象中添加一个 null 项。
CJSON_PUBLIC(cJSON*) cJSON_AddNullToObject(cJSON * const object, const char * const name);
参数:
object:要添加项的 cJSON 对象。
name:键名。返回值:
返回指向添加的 JSON 项的指针(cJSON *)。
如果添加失败(例如对象指针无效),返回 NULL。
向对象中添加一个 true 项。
CJSON_PUBLIC(cJSON*) cJSON_AddTrueToObject(cJSON * const object, const char * const name);
参数:
object:要添加项的 cJSON 对象。
name:键名。返回值:
返回指向添加的 JSON 项的指针(cJSON *)。
如果添加失败(例如对象指针无效),返回 NULL。
向对象中添加一个 false 项。
CJSON_PUBLIC(cJSON*) cJSON_AddFalseToObject(cJSON * const object, const char * const name);
参数:
object:要添加项的 cJSON 对象。
name:键名。返回值:
返回指向添加的 JSON 项的指针(cJSON *)。
如果添加失败(例如对象指针无效),返回 NULL。
向对象中添加一个布尔值项。
CJSON_PUBLIC(cJSON*) cJSON_AddBoolToObject(cJSON * const object, const char * const name, const cJSON_bool boolean);
参数:
object:要添加项的 cJSON 对象。
name:键名。
boolean:布尔值(1 表示 true,0 表示 false)。返回值:
返回指向添加的 JSON 项的指针(cJSON *)。
如果添加失败(例如对象指针无效),返回 NULL。
向对象中添加一个数字项。
CJSON_PUBLIC(cJSON*) cJSON_AddNumberToObject(cJSON * const object, const char * const name, const double number);
参数:
object:要添加项的 cJSON 对象。
name:键名。
number:数字值。返回值:
返回指向添加的 JSON 项的指针(cJSON *)。
如果添加失败(例如对象指针无效),返回 NULL。
向对象中添加一个字符串项。
CJSON_PUBLIC(cJSON*) cJSON_AddStringToObject(cJSON * const object, const char * const name, const char * const string);
参数:
object:要添加项的 cJSON 对象。
name:键名。
string:字符串值。返回值:
返回指向添加的 JSON 项的指针(cJSON *)。
如果添加失败(例如对象指针无效),返回 NULL。
向对象中添加一个原始 JSON 字符串项。
CJSON_PUBLIC(cJSON*) cJSON_AddRawToObject(cJSON * const object, const char * const name, const char * const raw);
参数:
object:要添加项的 cJSON 对象。
name:键名。
raw:原始 JSON 字符串。返回值:
返回指向添加的 JSON 项的指针(cJSON *)。
如果添加失败(例如对象指针无效),返回 NULL。
向对象中添加一个嵌套对象项。
CJSON_PUBLIC(cJSON*) cJSON_AddObjectToObject(cJSON * const object, const char * const name);
参数:
object:要添加项的 cJSON 对象。
name:键名。
newitem:新的 cJSON 对象。返回值:
返回指向添加的 JSON 项的指针(cJSON *)。
如果添加失败(例如对象指针无效),返回 NULL。
向对象中添加一个数组项。
CJSON_PUBLIC(cJSON*) cJSON_AddArrayToObject(cJSON * const object, const char * const name);
参数:
object:要添加项的 cJSON 对象。
name:键名。
array:新的 cJSON 数组。返回值:
返回指向添加的 JSON 项的指针(cJSON *)。
如果添加失败(例如对象指针无效),返回 NULL。
设置 cJSON 对象的整数值。
#define cJSON_SetIntValue(object, number) ((object) ? (object)->valueint = (object)->valuedouble = (number) : (number))
参数:
item:要设置值的 cJSON 对象。
value:整数值。返回值:无返回值。
设置 cJSON 对象的数字值,适用于浮点数。
CJSON_PUBLIC(double) cJSON_SetNumberHelper(cJSON *object, double number);
参数:
item:要设置值的 cJSON 对象。
number:浮点数值。
设置 cJSON 对象的数字值。
#define cJSON_SetNumberValue(object, number) ((object != NULL) ? cJSON_SetNumberHelper(object, (double)number) : (number))
参数:
item:要设置值的 cJSON 对象。
number:浮点数值。
设置 cJSON 对象的字符串值。
CJSON_PUBLIC(char*) cJSON_SetValuestring(cJSON *object, const char *valuestring);
参数:
object:要设置值的 cJSON 对象。
valuestring:字符串值。返回值:
返回指向新字符串的指针(char *),如果操作失败,则返回 NULL。
遍历 cJSON 数组中的每个项。
#define cJSON_ArrayForEach(element, array) for(element = (array != NULL) ? (array)->child : NULL; element != NULL; element = element->next)
参数:
element:用于存储当前项的指针。
array:要遍历的 cJSON 数组。返回值:
无返回值(使用宏)。
分配内存。
CJSON_PUBLIC(void *) cJSON_malloc(size_t size);
参数:
size:要分配的字节数。返回值:
返回指向分配内存的指针。
释放内存。
CJSON_PUBLIC(void) cJSON_free(void *object);
参数:
object:要释放的指针。
返回值:
无返回值。