JSON是一種輕量級的數據交換格式,其中數組對象是一種常見的數據類型。對于C語言開發者而言,如何遍歷JSON字符串數組對象是一項必須掌握的技能。
下面是一個示例JSON字符串數組對象:
{ "students": [ { "name": "Tom", "age": 18, "gender": "male" }, { "name": "Lily", "age": 20, "gender": "female" }, { "name": "Jim", "age": 19, "gender": "male" } ] }
我們用C語言解析該JSON字符串數組對象的過程可以分為以下幾個步驟:
第一步,解析JSON字符串。
json_object* jsonObj = json_tokener_parse(jsonStr);
第二步,獲取數組對象。
json_object* studentsObj; json_object_object_get_ex(jsonObj, "students", &studentsObj);
第三步,獲取數組長度。
int length = json_object_array_length(studentsObj);
第四步,遍歷數組對象。
for (int i = 0; i < length; i++) { json_object* studentObj = json_object_array_get_idx(studentsObj, i); json_object* nameObj; json_object* ageObj; json_object* genderObj; json_object_object_get_ex(studentObj, "name", &nameObj); json_object_object_get_ex(studentObj, "age", &ageObj); json_object_object_get_ex(studentObj, "gender", &genderObj); const char* name = json_object_get_string(nameObj); int age = json_object_get_int(ageObj); const char* gender = json_object_get_string(genderObj); printf("%s\t%d\t%s\n", name, age, gender); }
上述代碼中,我們首先通過json_tokener_parse函數解析JSON字符串,然后獲取數組對象studentsObj,接著獲取數組長度,最后用for循環遍歷數組對象。在每次循環中,我們依次獲取name、age、gender三個屬性的值,并輸出。
通過以上步驟,我們就可以成功遍歷JSON字符串數組對象了。