cJSON_ReplaceItemInObject()实例
时间: 2023-09-18 10:11:17 浏览: 258
Linux中cJSON源码+部分实例分析
下是一个使用cJSON_ReplaceItemInObject()函数的示例:
假设我们有一个JSON对象:
```c
{
"name": "Alice",
"age": 25,
"hobbies": ["reading", "swimming", "travelling"]
}
```
我们想要将"name"字段的值从"Alice"改为"Bob"。可以使用cJSON_Parse()函数将JSON字符串解析为cJSON对象,然后使用cJSON_GetObjectItem()函数获取"name"字段对应的cJSON对象。最后,使用cJSON_CreateString()函数创建一个新的字符串cJSON对象,然后使用cJSON_ReplaceItemInObject()函数将原来的"name"字段对应的cJSON对象替换为新的字符串cJSON对象。
示例代码如下:
```c
cJSON *root = cJSON_Parse(json_string); // 解析JSON字符串为cJSON对象
if (root == NULL) {
printf("Failed to parse JSON string.\n");
return;
}
cJSON *name_item = cJSON_GetObjectItem(root, "name"); // 获取"name"字段对应的cJSON对象
if (name_item == NULL) {
printf("Failed to get \"name\" item from JSON object.\n");
cJSON_Delete(root);
return;
}
cJSON *new_name_item = cJSON_CreateString("Bob"); // 创建一个新的字符串cJSON对象
if (new_name_item == NULL) {
printf("Failed to create new cJSON object for \"name\" field.\n");
cJSON_Delete(root);
return;
}
cJSON_ReplaceItemInObject(root, "name", new_name_item); // 替换原来的"name"字段对应的cJSON对象为新的字符串cJSON对象
char *new_json_string = cJSON_Print(root); // 将cJSON对象转换为JSON字符串
printf("New JSON string:\n%s\n", new_json_string);
cJSON_Delete(root); // 释放cJSON对象
free(new_json_string); // 释放JSON字符串
```
输出结果为:
```
New JSON string:
{
"name": "Bob",
"age": 25,
"hobbies": ["reading", "swimming", "travelling"]
}
```
阅读全文