C語言可以使用第三方庫,如Json-c或Jansson等,來讀取JSON內容。這些庫提供了許多函數,用于解析和操作JSON對象。下面以Json-C庫為例,介紹如何讀取JSON內容。
// 引入頭文件 #include#include int main() { // JSON字符串 char *json_str = "{ \"name\": \"Tom\", \"age\": 20, \"hobbies\": [\"reading\", \"swimming\"] }"; // 解析JSON字符串并獲取根節點 struct json_object *json_obj = json_tokener_parse(json_str); // 獲取name字段的值(字符串類型) struct json_object *name_obj; json_object_object_get_ex(json_obj, "name", &name_obj); const char *name = json_object_get_string(name_obj); // 獲取age字段的值(整型) struct json_object *age_obj; json_object_object_get_ex(json_obj, "age", &age_obj); int age = json_object_get_int(age_obj); // 獲取hobbies字段的值(數組類型) struct json_object *hobbies_obj; json_object_object_get_ex(json_obj, "hobbies", &hobbies_obj); int hobbies_len = json_object_array_length(hobbies_obj); for (int i = 0; i< hobbies_len; i++) { struct json_object *hobby_obj = json_object_array_get_idx(hobbies_obj, i); const char *hobby = json_object_get_string(hobby_obj); printf("%d: %s\n", i + 1, hobby); } // 釋放內存 json_object_put(json_obj); return 0; }
以上代碼中,首先需要引入頭文件,并定義一個JSON字符串。然后,使用json_tokener_parse函數解析JSON字符串并獲取根節點。接下來,依次使用json_object_object_get_ex函數獲取各個字段的值,并使用相應的json_object_get_XXX函數獲取具體值。最后,需要使用json_object_put函數釋放內存。
在編譯時,需要添加-ljson-c參數鏈接Json-C庫。使用以上方法,可以方便地讀取JSON內容,以便進行后續的數據處理。