在C語言中,我們可以使用json-c庫來解析JSON數(shù)據(jù)。當JSON數(shù)據(jù)是二維結(jié)構時,我們需要遍歷整個數(shù)據(jù)來讀取每個元素的值。下面是一個使用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數(shù)據(jù)中的每個學生的姓名、年齡、和GPA。首先,我們使用json_tokener_parse函數(shù)將JSON字符串轉(zhuǎn)換為json_object對象。然后,我們使用json_object_object_get_ex函數(shù)獲取二維JSON數(shù)據(jù)中的“students”數(shù)組。接著,我們遍歷這個數(shù)組,并對每個數(shù)組元素使用json_object_array_get_idx函數(shù)獲取學生的信息。最后,我們使用json_object_object_get_ex函數(shù)獲取每個學生的姓名、年齡和GPA,并使用json_object_get_string、json_object_get_int和json_object_get_double函數(shù)獲取這些值。
這是一個基本的遍歷二維JSON數(shù)據(jù)的例子。我們可以使用類似的方法來讀取其他類型的JSON數(shù)據(jù)。
上一篇c語言讀取json源代碼
下一篇c 項目將json獲取