在C語言中,有各種各樣的庫可以用來操作JSON對象。但是,如果你需要在運行時動態修改JSON,可能需要使用一個強大而又靈活的cJSON庫。
首先,我們需要安裝cJSON庫。可以在官網https://github.com/DaveGamble/cJSON上下載庫文件并進行編譯。
假設我們已經得到了一個名為“json”的JSON對象。我們可以使用cJSON庫的函數來訪問和修改它。例如,在JSON對象中添加一個名為“name”的字符串屬性和一個名為“age”的整數屬性:
cJSON *name = cJSON_CreateString("Tom"); cJSON_AddItemToObject(json, "name", name); cJSON *age = cJSON_CreateNumber(25); cJSON_AddItemToObject(json, "age", age);
我們還可以使用“cJSON_SetNumberValue”和“cJSON_SetStringValue”等函數,直接修改屬性值。例如:
cJSON *name = cJSON_GetObjectItem(json, "name"); cJSON_SetStringValue(name, "Jerry"); cJSON *age = cJSON_GetObjectItem(json, "age"); cJSON_SetNumberValue(age, 30);
如果要在JSON對象中添加一個數組屬性,則可以使用“cJSON_CreateArray”函數創建一個數組,然后使用“cJSON_AddItemToArray”函數將元素添加到數組中。例如:
cJSON *hobbies = cJSON_CreateArray(); cJSON_AddItemToObject(json, "hobbies", hobbies); cJSON *hobby1 = cJSON_CreateString("reading"); cJSON *hobby2 = cJSON_CreateString("coding"); cJSON_AddItemToArray(hobbies, hobby1); cJSON_AddItemToArray(hobbies, hobby2);
最后,我們可以使用“cJSON_Print”函數將JSON對象轉換為字符串,并將其保存在文件或發送到服務器等。例如:
char *json_str = cJSON_Print(json); printf("%s\n", json_str); // 注意:在使用cJSON_Print函數之后需要手動釋放內存 free(json_str);
以上就是使用cJSON庫動態修改JSON的基礎知識。接下來,你可以根據自己的需求使用更多的cJSON函數來操作JSON對象。
上一篇python 爬去機票
下一篇dto轉化為json