在C語言中,我們可以使用json-c庫來解析JSON數據。當JSON數據是二維結構時,我們需要遍歷整個數據來讀取每個元素的值。下面是一個使用json-c庫遍歷二維JSON的例子。
#include <stdio.h> #include <json-c/json.h> int main() { char *json_string = "{\"students\": [{\"name\":\"Tom\", \"age\": 20, \"gpa\":3.5}, {\"name\":\"Jerry\", \"age\": 21, \"gpa\":3.2}]}"; struct json_object *json_obj, *students, *student, *name, *age, *gpa; json_obj = json_tokener_parse(json_string); json_object_object_get_ex(json_obj, "students", &students); int i; for (i = 0; i < json_object_array_length(students); i++) { student = json_object_array_get_idx(students, i); json_object_object_get_ex(student, "name", &name); json_object_object_get_ex(student, "age", &age); json_object_object_get_ex(student, "gpa", &gpa); printf("Name: %s, Age: %d, GPA: %f\n", json_object_get_string(name), json_object_get_int(age), json_object_get_double(gpa)); } json_object_put(json_obj); return 0; }
上述代碼可以輸出JSON數據中的每個學生的姓名、年齡、和GPA。首先,我們使用json_tokener_parse函數將JSON字符串轉換為json_object對象。然后,我們使用json_object_object_get_ex函數獲取二維JSON數據中的“students”數組。接著,我們遍歷這個數組,并對每個數組元素使用json_object_array_get_idx函數獲取學生的信息。最后,我們使用json_object_object_get_ex函數獲取每個學生的姓名、年齡和GPA,并使用json_object_get_string、json_object_get_int和json_object_get_double函數獲取這些值。
這是一個基本的遍歷二維JSON數據的例子。我們可以使用類似的方法來讀取其他類型的JSON數據。
上一篇c語言讀取json源代碼
下一篇c 項目將json獲取