JSON(JavaScript 對象表示法)是一種輕量級的數(shù)據(jù)交換格式,具有跨平臺、易于閱讀和解析的特點。在 C 語言中,常用的 JSON 庫包括 cJSON、jansson 等。本文將介紹如何使用 cJSON 遍歷 JSON 數(shù)組。
cJSON 是一款輕量級的 JSON 庫,支持 C 和 C++ 語言。它的 API 簡單易用,功能齊全,可以方便地遍歷 JSON 數(shù)據(jù)結(jié)構(gòu)。使用 cJSON 遍歷 JSON 數(shù)組的過程如下:
#include <stdio.h>
#include <cJSON.h>
int main() {
const char *json_str = "[{\"name\":\"John\",\"age\":20},{\"name\":\"Mary\",\"age\":18}]";
cJSON *root = cJSON_Parse(json_str);
int array_size = cJSON_GetArraySize(root);
for (int i = 0; i< array_size; i++) {
cJSON *item = cJSON_GetArrayItem(root, i);
cJSON *name = cJSON_GetObjectItem(item, "name");
cJSON *age = cJSON_GetObjectItem(item, "age");
printf("Name: %s, Age: %d\n", name->valuestring, age->valueint);
}
cJSON_Delete(root);
return 0;
}
首先,定義一個 JSON 字符串,其中包含兩個對象,每個對象都有一個 name 和 age 屬性。然后,使用 cJSON_Parse 函數(shù)將字符串轉(zhuǎn)換為 cJSON 結(jié)構(gòu)體,獲取數(shù)組大小,并遍歷每個數(shù)組元素。通過 cJSON_GetArrayItem 函數(shù),可以獲取數(shù)組元素指針,然后使用 cJSON_GetObjectItem 函數(shù)獲取該元素的 name 和 age 屬性值。最后,釋放 cJSON 結(jié)構(gòu)體內(nèi)存。