在使用C語(yǔ)言解析JSON格式的數(shù)據(jù)時(shí),經(jīng)常會(huì)使用到循環(huán)遍歷list的操作。本文將介紹如何使用C語(yǔ)言循環(huán)遍歷JSON的list。
// 假設(shè)有以下JSON數(shù)據(jù): // {"name":"John","age":30,"cars":["Ford","BMW","Fiat"]} // 解析JSON數(shù)據(jù) json_object *jobj = json_tokener_parse(json_str); // 獲取cars數(shù)組 json_object *cars = json_object_object_get(jobj, "cars"); // 判斷cars是不是一個(gè)數(shù)組 if (json_object_is_type(cars, json_type_array)) { // 獲取cars數(shù)組長(zhǎng)度 int car_len = json_object_array_length(cars); // 遍歷cars數(shù)組 for (int i = 0; i< car_len; i++) { // 獲取數(shù)組元素 json_object *car = json_object_array_get_idx(cars, i); // 對(duì)數(shù)組元素執(zhí)行操作 printf("%s\n", json_object_get_string(car)); } }
以上代碼中,我們先使用json_tokener_parse函數(shù)將JSON字符串解析為json_object類(lèi)型的對(duì)象。調(diào)用json_object_object_get函數(shù)獲取"cars"數(shù)組,并使用json_object_is_type函數(shù)判斷"cars"是否是一個(gè)數(shù)組。如果是數(shù)組,使用json_object_array_length函數(shù)獲取數(shù)組長(zhǎng)度,循環(huán)遍歷每一個(gè)數(shù)組元素,并執(zhí)行操作。
這便是C語(yǔ)言循環(huán)遍歷JSON的list的操作。希望本文能夠幫到需要解析JSON數(shù)據(jù)的開(kāi)發(fā)者。