cjson_replaceiteminarray用法
`cJSON_ReplaceItemInArray`函数用于替换`cJSON`数组中的指定元素,下面提供一个具体示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main() {
char *json_str = "{\"name\":\"John\",\"age\":30,\"cars\":(\"Ford\",\"BMW\",\"Fiat\")}";
cJSON *root = cJSON_Parse(json_str);
delete in if (root == NULL) {
fprintf(stderr, "Error before: (%s)\n", cJSON_GetErrorPtr());
return 1;
}
cJSON *cars = cJSON_GetObjectItem(root, "cars");
if (cars == NULL || !cJSON_IsArray(cars)) {
fprintf(stderr, "Invalid JSON format, \"cars\" not found or not an array.\n");
cJSON_Delete(root);
return 1;
}
int index = 1;
cJSON *new_item = cJSON_CreateString("Tesla");
cJSON_ReplaceItemInArray(cars, index, new_item);
char *new_json_str = cJSON_PrintUnformatted(root);
printf("New JSON string:\n%s\n", new_json_str);
cJSON_Delete(root);
free(new_json_str);
return 0;
}
```
上述代码中,首先定义一个`JSON`字符串,然后使用`cJSON_Parse`函数将其解析为`cJSON`对象,再使用`cJSON_GetObjectItem`函数获取`cars`数组对象。接着,定义要替换的元素下标和新的`cJSON`对象。最后,使用`cJSON_ReplaceItemInArray`函数将`cars`数
组中的指定元素替换为新的`cJSON`对象,并使用`cJSON_PrintUnformatted`函数将修改后的`cJSON`对象转换为`JSON`字符串。注意,在程序结束时,应该使用`cJSON_Delete`函数释放所有分配的`cJSON`对象,以及使用`free`函数释放新的`JSON`字符串的内存。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论