色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 嵌套 json 解析

林國瑞1年前7瀏覽0評論

在這篇文章中,我們將介紹如何使用 C 語言解析嵌套的 JSON 數據。首先,我們需要了解什么是嵌套的 JSON 數據。

嵌套的 JSON 數據是指 JSON 數據的值可以是另一個 JSON 對象或數組。例如:

{
"id": 1,
"name": "John",
"address": {
"street": "Main St",
"city": "New York",
"zip": "10001"
},
"phone_numbers": [
"555-1234",
"555-5678"
]
}

在上面的例子中,"address" 是一個 JSON 對象,"phone_numbers" 是一個 JSON 數組。

現在,我們來看一下如何在 C 語言中解析嵌套的 JSON 數據。我們可以使用一個第三方 JSON 庫,例如 cJSON。

#include <stdio.h>
#include <cJSON.h>
int main() {
char *json_string = "{ ... }"; // JSON 數據字符串
cJSON *root = cJSON_Parse(json_string); // 解析 JSON 數據
if (root == NULL) {
printf("Error: failed to parse JSON data\n");
return 1;
}
// 解析嵌套的 JSON 對象
cJSON *address_obj = cJSON_GetObjectItem(root, "address");
char *street = cJSON_GetObjectItem(address_obj, "street")->valuestring;
char *city = cJSON_GetObjectItem(address_obj, "city")->valuestring;
char *zip = cJSON_GetObjectItem(address_obj, "zip")->valuestring;
// 解析嵌套的 JSON 數組
cJSON *phone_numbers_array = cJSON_GetObjectItem(root, "phone_numbers");
cJSON *phone_number = NULL;
cJSON_ArrayForEach(phone_number, phone_numbers_array) {
char *number = phone_number->valuestring;
printf("Phone number: %s\n", number);
}
cJSON_Delete(root); // 釋放 cJSON 對象
return 0;
}

在上面的代碼中,我們首先使用 cJSON_Parse() 函數將 JSON 數據字符串解析為一個 cJSON 對象。然后,我們使用 cJSON_GetObjectItem() 函數獲取 JSON 對象中的值,使用 cJSON_ArrayForEach() 函數遍歷 JSON 數組。

在解析完成后,我們需要注意釋放 cJSON 對象,避免內存泄漏。

使用 C 語言解析嵌套的 JSON 數據可能會比較麻煩,但使用第三方 JSON 庫可以大大簡化工作。希望本文能夠對你有所幫助。