在C語言中,讀取json列表的每個元素是非常常見的操作。以下是一個簡單的例子,說明如何使用C語言讀取json列表中的每個元素。
#include#include #include #include int main(int argc, char **argv) { char *json_string = "[{\"name\": \"Alice\", \"age\": 25}, {\"name\": \"Bob\", \"age\": 30}]"; struct json_object *json_obj, *json_item; json_obj = json_tokener_parse(json_string); if (!json_obj) { fprintf(stderr, "Error: Failed to parse json string"); return 1; } int i, array_len = json_object_array_length(json_obj); for (i = 0; i< array_len; i++) { json_item = json_object_array_get_idx(json_obj, i); printf("name: %s, age: %d\n", json_object_get_string(json_object_object_get(json_item, "name")), json_object_get_int(json_object_object_get(json_item, "age"))); } json_object_put(json_obj); return 0; }
首先,我們得把json字符串解析成json_object對象,使用json_tokener_parse函數即可。
json_obj = json_tokener_parse(json_string);
解析成功后,我們需要遍歷數組中的每個元素。我們可以使用json_object_array_get_idx函數來獲取json對象中指定索引號的元素。
json_item = json_object_array_get_idx(json_obj, i);
我們可以使用json_object_object_get函數來獲取json對象中的屬性,如果屬性類型正確,就可以使用json_object_get_string或json_object_get_int函數來獲取屬性值。
printf("name: %s, age: %d\n", json_object_get_string(json_object_object_get(json_item, "name")), json_object_get_int(json_object_object_get(json_item, "age")));
處理完后,我們需要釋放資源。可以使用json_object_put函數來釋放json_object對象所占用的內存。
json_object_put(json_obj);
這就是使用C語言讀取json列表每個元素的基本操作。以上代碼可以在Linux或者Windows等平臺的gcc上編譯。