在使用C語言處理JSON數據時,經常需要對數據進行修改。下面介紹JSON數據的修改方法。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <cJSON.h> int main() { char *json = "{\"name\":\"Tom\",\"age\":25,\"sex\":\"male\"}"; cJSON *root = cJSON_Parse(json); if (root == NULL) { printf("JSON string parse error!\n"); return -1; } // 修改name的值 cJSON *name = cJSON_GetObjectItem(root, "name"); if (name == NULL) { printf("Get name error!\n"); return -1; } cJSON_DeleteItemFromObject(root, "name"); cJSON_AddStringToObject(root, "name", "Jerry"); // 修改age的值 cJSON *age = cJSON_GetObjectItem(root, "age"); if (age == NULL) { printf("Get age error!\n"); return -1; } cJSON_DeleteItemFromObject(root, "age"); cJSON_AddNumberToObject(root, "age", 30); // 修改sex的值 cJSON *sex = cJSON_GetObjectItem(root, "sex"); if (sex == NULL) { printf("Get sex error!\n"); return -1; } cJSON_DeleteItemFromObject(root, "sex"); cJSON_AddStringToObject(root, "sex", "female"); char *new_json = cJSON_Print(root); printf("New JSON string:\n%s\n", new_json); cJSON_Delete(root); free(new_json); return 0; }
首先,需要解析JSON數據,使用cJSON_Parse函數。該函數會返回一個cJSON類型的指針,表示JSON數據的根節點。
然后,可以使用cJSON_GetObjectItem函數獲取某個節點的值。比如,通過獲取“name”節點,可以得到其值“Tom”。
接著,需要使用cJSON_DeleteItemFromObject刪除某個節點。比如,刪除“name”節點。
最后,使用cJSON_AddStringToObject或cJSON_AddNumberToObject添加新節點,并給新節點賦值。比如,添加一個值為“Jerry”的“name”節點。
修改了JSON數據之后,使用cJSON_Print函數打印出新的JSON數據。
上一篇python 折線圖數據
下一篇mysql分組表