2024年8月24日发(作者:)
cjson_duplicate用法
cjson_duplicate 是一个辅助函数,用来复制一个 cjson 的对象。
具体用法如下:
```c
cJSON *cjson_duplicate(cJSON *item, int recurse);
```
参数:
- `item`:要复制的 cJSON 对象。
- `recurse`:是否递归复制其子对象,可选值为 0 或 1。如果设
置为 1,则会递归复制 item 的子对象;如果设置为 0,则只复
制 item。
返回值:
- 复制后的 cJSON 对象。如果复制成功,则返回新的 cJSON
对象;如果复制失败(如内存分配失败),则返回 NULL。
示例代码:
```c
#include
#include "cJSON.h"
int main() {
// 创建 cjson 对象
cJSON *root = cJSON_CreateObject();
cJSON *array = cJSON_CreateArray();
cJSON *item1 = cJSON_CreateString("item1");
cJSON *item2 = cJSON_CreateString("item2");
// 将 item1 和 item2 放入 array 中
cJSON_AddItemToArray(array, item1);
cJSON_AddItemToArray(array, item2);
// 将 array 放入 root 中
cJSON_AddItemToObject(root, "array", array);
// 复制 cjson 对象
cJSON *duplicate = cjson_duplicate(root, 1);
// 输出复制后的结果
char *json_str = cJSON_Print(duplicate);
printf("Duplicate JSON: %sn", json_str);
// 释放资源
cJSON_Delete(root);
cJSON_Delete(duplicate);
free(json_str);
return 0;
}
```
运行以上代码会输出复制后的 cJSON 对象的 JSON 字符串:
```
Duplicate JSON: {"array":["item1","item2"]}
```
注意:在使用 cjson_duplicate 函数复制 cJSON 对象后,需要
手动调用 cJSON_Delete 函数释放所复制的 cJSON 对象所占用
的内存。


发布评论