在處理json數據的過程中,我們常常需要修改其中的某個key的值,這時候就需要用到cjson庫了。
先看下面的例子:
cJSON *root = cJSON_Parse("{\"name\": \"Tom\", \"age\": 18}");
cJSON *name = cJSON_GetObjectItem(root, "name");
cJSON_Delete(name);
cJSON_AddStringToObject(root, "name", "Jerry");
char *new_json = cJSON_Print(root);
printf("%s\n", new_json); // 輸出:{"age":18,"name":"Jerry"}
在這個例子中,我們首先解析了一個json字符串,然后通過cJSON_GetObjectItem函數獲取了key為"name"的value,接著使用cJSON_Delete刪除了該value,最后用cJSON_AddStringToObject函數又新插入了一個值為"Jerry"的"name"。
其中,cJSON_AddStringToObject函數的第一個參數為需要添加元素的對象,第二個參數為需要添加元素的key,第三個參數為需要添加的元素值,具體函數定義如下:
cJSON_bool cJSON_AddStringToObject(cJSON * const object, const char * const string, const char * const value);
類似地,如果需要修改其他類型的值,如數字、數組或對象,只需使用相應的cJSON_Add...ToObject函數即可,詳細可見cjson的文檔。
上一篇csharp遍歷json
下一篇css 刪除json