在 C 語言中使用 JSON 列表是非常常見的任務。JSON 是一種輕量級的數據格式,在許多應用程序中都被廣泛使用。
#include <stdio.h> #include <cjson/cJSON.h> int main() { char* json_string = "{\"list\":[{\"name\":\"Tom\",\"age\":20},{\"name\":\"Jerry\",\"age\":18}]}"; cJSON* root = cJSON_Parse(json_string); cJSON* list = cJSON_GetObjectItem(root, "list"); int list_size = cJSON_GetArraySize(list); for (int i = 0; i< list_size; i++) { cJSON* item = cJSON_GetArrayItem(list, i); const char* name = cJSON_GetObjectItem(item, "name")->valuestring; int age = cJSON_GetObjectItem(item, "age")->valueint; printf("name: %s, age: %d\n", name, age); } cJSON_Delete(root); return 0; }
上述代碼演示了如何解析 JSON 列表,并處理其中包含的 JSON 對象。
在這個例子中,我們首先將 JSON 字符串傳遞給 cJSON_Parse() 函數,該函數返回根節點的 cJSON 對象。我們通過調用 cJSON_GetObjectItem() 函數來獲取 JSON 對象的子元素,如列表 "list"。
然后,我們循環遍歷列表中的每個元素,并使用 cJSON_GetObjectItem() 來獲取每個元素的子元素,如 "name" 和 "age"。我們可以使用 cJSON_GetObjectItem()->valuestring 和 cJSON_GetObjectItem()->valueint 來獲取每個子元素的值。
最后,我們使用 cJSON_Delete() 函數釋放 cJSON 對象。