cJSON修改 valueint 属性成员的值
时间: 2023-08-05 15:04:46 浏览: 143
要修改cJSON的valueint属性成员的值,你可以使用以下代码:
```c
#include <stdio.h>
#include "cJSON.h"
int main() {
char* json = "{\"key\": 123}";
cJSON* root = cJSON_Parse(json);
if (root == NULL) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
cJSON* value = cJSON_GetObjectItemCaseSensitive(root, "key");
if (cJSON_IsNumber(value)) {
value->valueint = 456; // 修改valueint属性成员的值
}
char* modified_json = cJSON_Print(root);
printf("Modified JSON:\n%s\n", modified_json);
cJSON_Delete(root);
free(modified_json);
return 0;
}
```
在上面的例子中,我们首先解析了一个包含一个key-value对的JSON字符串。然后,我们使用`cJSON_GetObjectItemCaseSensitive`函数获取到了key对应的cJSON对象。由于这个key对应的值是一个数字,我们使用`cJSON_IsNumber`函数进行类型检查,确保这个值是一个数字类型。最后,我们修改了这个数字的值,将其设置为了456,并将修改后的JSON字符串打印出来。
注意,在使用`cJSON_Print`函数将修改后的cJSON对象转换为JSON字符串时,需要手动释放内存,即调用`free`函数来释放返回的字符串指针。
阅读全文