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

c 讀取 json 嵌套

吉茹定1年前9瀏覽0評論

C 語言在讀取嵌套的 JSON 數(shù)據(jù)時,可以借助一些第三方庫,如 cJSON。這個庫可以方便地將 JSON 字符串轉(zhuǎn)換為 C 語言中的數(shù)據(jù)結(jié)構(gòu),同時也支持嵌套的 JSON 數(shù)據(jù)。下面展示了一個簡單的示例代碼來讀取嵌套的 JSON 數(shù)據(jù)。

#include <stdio.h>
#include <cjson/cJSON.h>
int main() {
char* json_string = "{ \"name\": \"Tom\", \"age\": 18, \"address\": {\"city\": \"Beijing\", \"street\": \"Nanluoguxiang\"} }";
cJSON* json = cJSON_Parse(json_string);
if (!json) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
cJSON* name = cJSON_GetObjectItem(json, "name");
if (name && cJSON_IsString(name)) {
printf("name: %s\n", name->valuestring);
}
cJSON* age = cJSON_GetObjectItem(json, "age");
if (age && cJSON_IsNumber(age)) {
printf("age: %d\n", age->valueint);
}
cJSON* address = cJSON_GetObjectItem(json, "address");
if (address && cJSON_IsObject(address)) {
cJSON* city = cJSON_GetObjectItem(address, "city");
cJSON* street = cJSON_GetObjectItem(address, "street");
if (city && street && cJSON_IsString(city) && cJSON_IsString(street)) {
printf("address: %s %s\n", city->valuestring, street->valuestring);
}
}
cJSON_Delete(json);
return 0;
}

在這個示例代碼中,我們首先定義了一個 JSON 字符串,里面包含了一個嵌套的 JSON 數(shù)據(jù)。然后使用 cJSON_Parse 函數(shù)將其解析為一個 cJSON 對象,接著通過 cJSON_GetObjectItem 函數(shù)可以獲取到該對象中的各個屬性值。需要注意的是,在獲取嵌套的 JSON 數(shù)據(jù)時,我們可以先獲取到外層的對象,然后再逐層獲取內(nèi)層的對象。最后使用 cJSON_Delete 函數(shù)來釋放 cJSON 對象。