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

c 遍歷json對象中對象

呂致盈1年前8瀏覽0評論

JSON(JavaScript Object Notation)是一種常用的數據交換格式,也是一種輕量級的數據交換格式。有時候我們需要在 C 語言中讀取 JSON 對象中的數據,這就需要用到 C 語言遍歷 JSON 對象的技巧。

在 C 語言中,我們可以使用 cJSON 庫來解析 JSON 對象。cJSON 是一個輕量級的、簡單易用的 C 語言庫,它可以將 JSON 數據轉換成 C 語言中的結構體或數組,非常適用于嵌入式系統開發。下面我們來看看如何使用 cJSON 庫遍歷 JSON 對象。

// 在 C 語言中使用 cJSON 解析 JSON 對象
#include <cJSON.h>
#include <stdio.h>
int main(int argc, char const *argv[])
{
char *json_str = "{\"name\":\"Tom\",\"age\":18,\"cities\":[\"Beijing\",\"Shanghai\"]}";
// 解析 JSON 對象
cJSON *root = cJSON_Parse(json_str);
// 獲取 JSON 對象中的 name 屬性
cJSON *name = cJSON_GetObjectItem(root, "name");
printf("name: %s\n", name->valuestring);
// 獲取 JSON 對象中的 age 屬性
cJSON *age = cJSON_GetObjectItem(root, "age");
printf("age: %d\n", age->valueint);
// 獲取 JSON 對象中的 cities 屬性
cJSON *cities = cJSON_GetObjectItem(root, "cities");
// 遍歷 cities 數組
cJSON *city = NULL;
cJSON_ArrayForEach(city, cities)
{
printf("city: %s\n", city->valuestring);
}
// 釋放 cJSON 對象占用的內存
cJSON_Delete(root);
return 0;
}

上面的例子中,我們定義了一個 JSON 字符串,然后使用 cJSON_Parse 函數解析該字符串,得到一個 cJSON 結構體指針 root。接著,我們使用 cJSON_GetObjectItem 函數獲取 JSON 對象中的屬性,遍歷 cities 屬性中的數組,最后使用 cJSON_Delete 函數釋放 cJSON 對象占用的內存。

在遍歷 JSON 對象的過程中,我們可以使用 cJSON_ArrayForEach 函數遍歷 cJSON_Array 類型的數組,使用 cJSON_GetArraySize 函數獲取數組的長度,使用 cJSON_GetArrayItem 函數獲取數組中的元素。除此之外,我們還可以使用 cJSON_XXX 函數獲取 JSON 對象中的屬性,如 cJSON_GetObjectItem、cJSON_GetObjectItemCaseSensitive、cJSON_GetArrayItem、cJSON_GetArraySize 等。需要注意的是,在使用 cJSON 函數操作 JSON 對象時,一定要先使用 cJSON_Parse 函數將 JSON 字符串解析成 cJSON 結構體指針,再進行操作,最后使用 cJSON_Delete 函數釋放 cJSON 對象占用的內存。