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

c json解析嵌套json字符串

洪振霞2年前11瀏覽0評論

在進行C語言中的JSON解析時,我們有時需要處理嵌套的JSON字符串。這篇文章將介紹如何使用C語言解析嵌套JSON字符串。

首先,我們需要使用一個第三方庫來解析JSON字符串。我們可以使用cJSON。可通過以下方式安裝cJSON:

git clone https://github.com/DaveGamble/cJSON.git
cd cJSON
make
sudo make install

安裝完成后,我們就可以開始解析JSON字符串了。假設我們想要解析以下嵌套JSON字符串:

{
"name": "Tom",
"age": 25,
"address": {
"street": "Main Street",
"city": "New York",
"state": "NY"
}
}

我們可以使用cJSON中的cJSON_Parse()函數來解析JSON字符串:

#include "cJSON.h"
int main() {
char *json_str = "{\"name\": \"Tom\", \"age\": 25, \"address\":{\"street\": \"Main Street\", \"city\": \"New York\", \"state\": \"NY\"}}";
cJSON *json_root = cJSON_Parse(json_str);
if (json_root != NULL) {
// 獲取name
cJSON *json_name = cJSON_GetObjectItem(json_root, "name");
if (json_name != NULL) {
printf("Name: %s\n", json_name->valuestring);
}
// 獲取age
cJSON *json_age = cJSON_GetObjectItem(json_root, "age");
if (json_age != NULL) {
printf("Age: %d\n", json_age->valueint);
}
// 解析address
cJSON *json_address = cJSON_GetObjectItem(json_root, "address");
if (json_address != NULL) {
// 獲取street
cJSON *json_street = cJSON_GetObjectItem(json_address, "street");
if (json_street != NULL) {
printf("Street: %s\n", json_street->valuestring);
}
// 獲取city
cJSON *json_city = cJSON_GetObjectItem(json_address, "city");
if (json_city != NULL) {
printf("City: %s\n", json_city->valuestring);
}
// 獲取state
cJSON *json_state = cJSON_GetObjectItem(json_address, "state");
if (json_state != NULL) {
printf("State: %s\n", json_state->valuestring);
}
}
cJSON_Delete(json_root);
}
return 0;
}

在上面的代碼中,我們使用了JSON對象的cJSON_GetObjectItem()函數來獲取對象中的成員。要獲取address對象,我們首先需要獲取整個JSON對象的指針,然后再通過cJSON_GetObjectItem()函數獲取address對象的指針。然后我們使用類似的方法獲取address中的每個成員。

最后,我們需要調用cJSON_Delete()函數來釋放JSON對象的內存。