C語言中,要通過JSON獲取數組,需要用到一個開源庫——json-c。這個庫提供了許多函數,用于解析JSON數據,并且能夠靈活、高效地處理數組。
#include <stdio.h> #include <json-c/json.h> int main() { const char* json_string = "{\"name\": \"Tina\", \"age\": 20, \"hobbies\": [\"reading\", \"singing\", \"dancing\"]}"; struct json_object* json_object = json_tokener_parse(json_string); struct json_object* hobbies_object = NULL; if (json_object_object_get_ex(json_object, "hobbies", &hobbies_object)) { if (json_object_is_type(hobbies_object, json_type_array)) { int hobbies_count = json_object_array_length(hobbies_object); printf("Tina has %d hobbies:\n", hobbies_count); for (int i = 0; i < hobbies_count; i++) { struct json_object* hobby_object = json_object_array_get_idx(hobbies_object, i); printf("%d: %s\n", i + 1, json_object_get_string(hobby_object)); } } else { printf("Hobbies is not an array!\n"); } } else { printf("Cannot find key 'hobbies' in JSON data!\n"); } json_object_put(json_object); return 0; }
上面這段代碼演示了如何獲取JSON數據中的
hobbies
數組。首先,需要將JSON字符串解析成JSON對象,使用json_tokener_parse
函數就可以實現。接下來,通過json_object_object_get_ex
函數獲取到hobbies
對象,再用json_object_is_type
函數判斷是否為數組類型,如果是,就可以計算數組長度,并且通過json_object_array_get_idx
函數訪問數組元素。最后,記得釋放JSON對象的內存,調用json_object_put
函數即可。