欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c json 數組解析

老白2年前8瀏覽0評論

C語言的JSON庫有很多種,比較常見近幾年比較流行的有cJSON和jansson。在處理JSON數據時,常常會遇到需要解析數組的情況。下面我們就來介紹一下如何使用cJSON庫來解析JSON數組。

首先,我們需要將JSON字符串轉換成cJSON對象。假設我們有以下的JSON字符串:

{
"fruits": [
{
"name": "apple",
"color": "red"
},
{
"name": "banana",
"color": "yellow"
}
]
}

我們可以使用cJSON_Parse函數將其轉換成cJSON對象:

cJSON *root = cJSON_Parse(json_string);

現在,我們已經可以通過cJSON_GetObjectItem函數來獲取fruits數組了:

cJSON *fruits = cJSON_GetObjectItem(root, "fruits");

接下來,我們遍歷這個數組中的每一個元素。我們可以使用cJSON_GetArraySize函數獲取數組的大小,然后用for循環來進行遍歷:

int i;
for (i = 0; i< cJSON_GetArraySize(fruits); i++) {
cJSON *fruit = cJSON_GetArrayItem(fruits, i);
char *name = cJSON_GetObjectItem(fruit, "name")->valuestring;
char *color = cJSON_GetObjectItem(fruit, "color")->valuestring;
printf("Fruit %d: %s (%s)\n", i+1, name, color);
}

在遍歷的過程中,我們先使用cJSON_GetArrayItem函數獲取數組中的當前元素,然后使用cJSON_GetObjectItem函數獲取當前元素中的屬性。

完整的代碼如下所示:

#include#include "cJSON.h"
int main()
{
char *json_string = "{ \"fruits\": [ {\"name\": \"apple\", \"color\": \"red\"}, {\"name\": \"banana\", \"color\": \"yellow\"} ] }";
cJSON *root = cJSON_Parse(json_string);
cJSON *fruits = cJSON_GetObjectItem(root, "fruits");
int i;
for (i = 0; i< cJSON_GetArraySize(fruits); i++) {
cJSON *fruit = cJSON_GetArrayItem(fruits, i);
char *name = cJSON_GetObjectItem(fruit, "name")->valuestring;
char *color = cJSON_GetObjectItem(fruit, "color")->valuestring;
printf("Fruit %d: %s (%s)\n", i+1, name, color);
}
return 0;
}

此時運行程序,輸出結果如下:

Fruit 1: apple (red)
Fruit 2: banana (yellow)

以上就是使用cJSON庫解析JSON數組的過程,希望對大家有所幫助。