C語言中,傳遞JSON字符串數(shù)組的方法有很多,我們可以使用Json-c 庫或者 cJSON 庫來讀取和處理JSON格式的數(shù)據(jù)。
# include <stdio.h> # include <json-c/json.h> int main() { char* arr = "[{\"name\":\"John\",\"age\":30,\"city\":\"New York\"},{\"name\":\"David\",\"age\":35,\"city\":\"Chicago\"}]"; struct json_object* obj; struct json_object* pArray; int i; obj = json_tokener_parse(arr); if (obj != NULL) { json_object_object_get_ex(obj, "users", &pArray); if (pArray != NULL && json_object_is_type(pArray, json_type_array)) { for (i = 0; i< json_object_array_length(pArray); i++) { struct json_object* pSubObj = json_object_array_get_idx(pArray, i); printf("\nUser %d:\n", i); printf("Name: %s\n", json_object_get_string(json_object_object_get(pSubObj, "name"))); printf("Age: %d\n", json_object_get_int(json_object_object_get(pSubObj, "age"))); printf("City: %s\n", json_object_get_string(json_object_object_get(pSubObj, "city"))); } } json_object_put(obj); } return 0; }
在上面的代碼中,我們使用了 Json-c 庫來解析JSON字符串數(shù)組,它提供了一個方便的API,我們首先通過 json_tokener_parse() 函數(shù)將JSON字符串轉(zhuǎn)換為 json_object 對象,然后使用 json_object_object_get_ex() 函數(shù)獲取對象中的數(shù)組,再通過 json_object_array_length() 函數(shù)獲取數(shù)組的長度,最后使用 json_object_array_get_idx() 函數(shù)獲取數(shù)組中的每個子對象,并逐一解析每個子對象的鍵值對。