在C語(yǔ)言中,我們可以使用json-c庫(kù)來(lái)解析JSON數(shù)據(jù)。如果我們有一個(gè)JSON數(shù)組,我們可以使用以下代碼遍歷它的key和value:
#include <stdio.h> #include <json-c/json.h> int main() { char *json_string = "[{\"name\":\"張三\", \"age\": 20}, {\"name\":\"李四\", \"age\": 22}]"; struct json_object *json_array, *json_object, *json_value; json_array = json_tokener_parse(json_string); int array_length = json_object_array_length(json_array); int i; for(i=0; i在上面的代碼中,我們首先定義了一個(gè)JSON字符串,該字符串包含一個(gè)JSON數(shù)組。我們使用json_tokener_parse()函數(shù)將字符串轉(zhuǎn)換為json_object對(duì)象,然后使用json_object_array_length()函數(shù)獲取數(shù)組的大小。
接下來(lái),我們使用一個(gè)for循環(huán)遍歷數(shù)組的每個(gè)元素。在每個(gè)元素中,我們使用json_object_object_foreach()函數(shù)遍歷JSON對(duì)象的每個(gè)key和value。json_object_object_foreach()函數(shù)需要兩個(gè)參數(shù):第一個(gè)參數(shù)是要遍歷的json_object對(duì)象,第二個(gè)參數(shù)是一個(gè)字符串變量名用于保存key。
在循環(huán)中,我們使用json_object_to_json_string()函數(shù)將value轉(zhuǎn)換為字符串,在printf()函數(shù)中將key和轉(zhuǎn)換后的value打印到控制臺(tái)上。最后,我們返回0,程序結(jié)束。
使用上述代碼,我們可以遍歷JSON數(shù)組中的每個(gè)元素的key和value。這對(duì)于處理JSON數(shù)據(jù)非常有用,尤其是在大型項(xiàng)目中以及處理外部數(shù)據(jù)時(shí)。