C語言是一門很實(shí)用的編程語言,可以用來處理很多數(shù)據(jù)結(jié)構(gòu),例如JSON數(shù)組。JSON數(shù)組是由多個(gè)JSON對象組成的有序的集合,我們可以使用C語言來遍歷這個(gè)數(shù)組。
//假定我們有以下JSON數(shù)組 {"students": [ {"name":"Tom", "age":18}, {"name":"Mary", "age":20}, {"name":"John", "age":19}, ]} //我們可以使用C語言來遍歷這個(gè)數(shù)組 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { //先解析JSON數(shù)據(jù) char *json_str = "{\"students\":[{\"name\":\"Tom\",\"age\":18},{\"name\":\"Mary\",\"age\":20},{\"name\":\"John\",\"age\":19}]}"; json_error_t error; json_t *json = json_loads(json_str, 0, &error); if (!json || !json_is_object(json)) { printf("JSON格式有誤:%s\n", error.text); } else { //獲取students數(shù)組 json_t *students = json_object_get(json, "students"); if (!students || !json_is_array(students)) { printf("找不到students數(shù)組\n"); } else { //遍歷students數(shù)組 size_t index; json_t *student; json_array_foreach(students, index, student) { if (json_is_object(student)) { json_t* name = json_object_get(student, "name"); json_t* age = json_object_get(student, "age"); if (json_is_string(name) && json_is_integer(age)) { printf("%s的年齡是%d\n", json_string_value(name), json_integer_value(age)); } } } } } //釋放內(nèi)存 json_decref(json); return 0; }
上面的代碼可以解析一個(gè)JSON數(shù)組,并遍歷里面的對象,輸出每個(gè)學(xué)生的名字和年齡。這個(gè)例子展示了如何使用C語言來處理JSON數(shù)據(jù)。