C語言中常用的JSON解析庫有很多,其中JSON-C和cJSON應(yīng)該是最為常用的兩個。在使用cJSON解析JSON數(shù)據(jù)時,會涉及到JSON數(shù)組的遍歷問題。下面就來介紹一下如何用cJSON遍歷JSON數(shù)組。
//先來看一下JSON數(shù)據(jù)示例 { "array": [ { "name": "張三", "age": 18 }, { "name": "李四", "age": 20 }, { "name": "王五", "age": 22 } ] } //接下來就看一下如何使用cJSON進行遍歷 cJSON* root = cJSON_Parse(json_data); cJSON* array = cJSON_GetObjectItem(root, "array"); int array_size = cJSON_GetArraySize(array); for (int i = 0; i< array_size; i++) { cJSON* item = cJSON_GetArrayItem(array, i); cJSON* name = cJSON_GetObjectItem(item, "name"); cJSON* age = cJSON_GetObjectItem(item, "age"); printf("%s - %d\n", cJSON_GetStringValue(name), cJSON_GetIntValue(age)); } //以上代碼就可以輸出數(shù)組中每一個元素的name和age屬性值啦!
需要注意的是,使用cJSON遍歷JSON數(shù)組時,需要先獲取到數(shù)組本身的指針,然后通過cJSON_GetArraySize函數(shù)來獲取數(shù)組的大小,在循環(huán)中逐個獲取數(shù)組元素的指針,進而獲取數(shù)組元素的屬性值。這里輸出數(shù)組元素的屬性值只是一個示例,實際應(yīng)用中可以根據(jù)需求進行不同的操作。