在C語言中,將JSON轉(zhuǎn)換為List是一項非常有用的功能。List是一種常用的數(shù)據(jù)類型,可以方便地存儲和管理大量數(shù)據(jù)。下面是一段使用pre標簽的代碼示例,展示了如何將JSON字符串轉(zhuǎn)換為List:
#include <stdio.h> #include <jansson.h> int main() { char *json_data = "{\"name\": \"Alice\", \"age\": 20, \"score\": [89, 90, 95]}"; json_error_t error; json_t *root = json_loads(json_data, 0, &error); if (!json_is_object(root)) { printf("JSON格式有誤"); exit(1); } json_t *name, *age, *score; name = json_object_get(root, "name"); age = json_object_get(root, "age"); score = json_object_get(root, "score"); if (!json_is_string(name)) { printf("name字段格式有誤"); exit(1); } if (!json_is_integer(age)) { printf("age字段格式有誤"); exit(1); } if (!json_is_array(score)) { printf("score字段格式有誤"); exit(1); } printf("姓名:%s\n", json_string_value(name)); printf("年齡:%d\n", (int)json_integer_value(age)); size_t index; json_t *value; json_array_foreach(score, index, value) { printf("分數(shù)%d:%d\n", (int)index+1, (int)json_integer_value(value)); } json_decref(root); return 0; }
在上面的代碼中,我們使用了jansson庫,它是一個輕量級的JSON解析庫。我們首先使用json_loads函數(shù)將JSON字符串加載到內(nèi)存中,并設(shè)置了錯誤處理函數(shù)。然后,我們獲取了JSON對象的name、age和score字段,并判斷它們的類型是否正確。最后,我們打印出了這些字段的值,并使用json_array_foreach函數(shù)遍歷了score字段中的數(shù)組。
通過上面的代碼,我們可以看到如何將JSON字符串轉(zhuǎn)換為List類型,并方便地獲取其中的字段值。如果您在使用C語言開發(fā)過程中需要處理JSON數(shù)據(jù),jansson庫是您不錯的選擇。