cjson相关教程
文章目录
- cjson相关教程
- 前言
- 常见的Cjson函数
- 1. 创建 JSON 对象
- 2. 添加数据到 JSON 对象
- 3. 获取数据
- 4. 操作 JSON 对象
- 5. 解析 JSON
- 6. 输出 JSON 字符串
- 7. 其他功能
- 常见的 `cJSON` 函数总结:
前言
这里列出常见的Cjson函数
常见的Cjson函数
1. 创建 JSON 对象
-
cJSON *cJSON_CreateObject(void)
创建一个新的 JSON 对象(类似于一个字典或哈希表)。 -
cJSON *cJSON_CreateArray(void)
创建一个新的 JSON 数组。 -
cJSON *cJSON_CreateString(const char *string)
创建一个新的 JSON 字符串值。 -
cJSON *cJSON_CreateNumber(double num)
创建一个新的 JSON 数字值。 -
cJSON *cJSON_CreateBool(cJSON_bool boolean)
创建一个新的 JSON 布尔值(true
或false
)。 -
cJSON *cJSON_CreateNull(void)
创建一个新的 JSONnull
值。
2. 添加数据到 JSON 对象
-
cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item)
将一个 JSON 项(item
)添加到 JSON 对象(object
)中,并使用string
作为键。 -
cJSON_AddItemToArray(cJSON *array, cJSON *item)
将一个 JSON 项(item
)添加到 JSON 数组(array
)中。 -
cJSON_AddStringToObject(cJSON *object, const char *string, const char *value)
向 JSON 对象中添加一个字符串键值对。 -
cJSON_AddNumberToObject(cJSON *object, const char *string, double num)
向 JSON 对象中添加一个数字键值对。 -
cJSON_AddBoolToObject(cJSON *object, const char *string, cJSON_bool b)
向 JSON 对象中添加一个布尔值键值对。 -
cJSON_AddNullToObject(cJSON *object, const char *string)
向 JSON 对象中添加一个null
键值对。
3. 获取数据
-
cJSON *cJSON_GetObjectItem(cJSON *object, const char *string)
获取 JSON 对象中指定键的值。 -
cJSON *cJSON_GetArrayItem(cJSON *array, int index)
获取 JSON 数组中指定索引位置的元素。 -
char *cJSON_GetStringValue(cJSON *item)
获取 JSON 项的字符串值。 -
double cJSON_GetNumberValue(cJSON *item)
获取 JSON 项的数字值。 -
cJSON_bool cJSON_IsString(cJSON *item)
判断一个 JSON 项是否是字符串。 -
cJSON_bool cJSON_IsNumber(cJSON *item)
判断一个 JSON 项是否是数字。 -
cJSON_bool cJSON_IsBool(cJSON *item)
判断一个 JSON 项是否是布尔值。 -
cJSON_bool cJSON_IsArray(cJSON *item)
判断一个 JSON 项是否是数组。 -
cJSON_bool cJSON_IsObject(cJSON *item)
判断一个 JSON 项是否是对象。
4. 操作 JSON 对象
-
void cJSON_Delete(cJSON *item)
删除一个 JSON 项,释放它占用的内存。 -
char *cJSON_Print(cJSON *item)
将 JSON 对象转换为格式化的 JSON 字符串。 -
char *cJSON_PrintUnformatted(cJSON *item)
将 JSON 对象转换为没有格式的 JSON 字符串(适用于紧凑输出)。 -
cJSON *cJSON_Duplicate(cJSON *item, cJSON_bool recurse)
复制一个 JSON 对象或数组,如果recurse
为true
,则递归复制。 -
void cJSON_ReplaceItemInObject(cJSON *object, const char *string, cJSON *item)
替换 JSON 对象中指定键的值。 -
void cJSON_ReplaceItemInArray(cJSON *array, int index, cJSON *item)
替换 JSON 数组中指定索引位置的元素。 -
cJSON *cJSON_RemoveItemFromObject(cJSON *object, const char *string)
从 JSON 对象中删除指定键的值。 -
cJSON *cJSON_RemoveItemFromArray(cJSON *array, int index)
从 JSON 数组中删除指定索引位置的元素。
5. 解析 JSON
-
cJSON *cJSON_Parse(const char *value)
解析一个 JSON 字符串并返回对应的 JSON 对象。如果解析失败,则返回NULL
。 -
cJSON *cJSON_ParseWithLength(const char *value, size_t length)
与cJSON_Parse
相似,但允许你指定解析的字符串长度,适用于处理大字符串的情况。
6. 输出 JSON 字符串
-
char *cJSON_Print(cJSON *item)
将cJSON
对象转换为字符串,并返回格式化后的 JSON 字符串。 -
char *cJSON_PrintUnformatted(cJSON *item)
将cJSON
对象转换为字符串,返回一个未格式化的紧凑型 JSON 字符串。
7. 其他功能
-
cJSON *cJSON_CreateIntArray(const int *numbers, size_t count)
根据给定的整数数组创建一个 JSON 数组。 -
cJSON *cJSON_CreateFloatArray(const float *numbers, size_t count)
根据给定的浮点数数组创建一个 JSON 数组。 -
cJSON *cJSON_CreateDoubleArray(const double *numbers, size_t count)
根据给定的双精度数组创建一个 JSON 数组。
常见的 cJSON
函数总结:
函数名 | 作用 |
---|---|
cJSON_CreateObject() | 创建一个空的 JSON 对象 |
cJSON_CreateArray() | 创建一个空的 JSON 数组 |
cJSON_AddStringToObject() | 向 JSON 对象中添加字符串类型数据 |
cJSON_AddNumberToObject() | 向 JSON 对象中添加数字类型数据 |
cJSON_GetObjectItem() | 获取 JSON 对象中的某个键值 |
cJSON_Print() | 将 JSON 对象转换为字符串 |
cJSON_Parse() | 解析 JSON 字符串,返回 JSON 对象 |
cJSON_Delete() | 删除 JSON 对象及其包含的所有数据 |
cJSON_AddItemToObject() | 向 JSON 对象添加一个项 |
cJSON_IsString() | 判断项是否为字符串类型 |