在C語言中,解析JSON多層嵌套需要使用JSON庫。接下來我們來看一下如何使用JSON庫來解析多層嵌套的JSON數據。
首先我們需要定義一個JSON對象,在本例中我們使用的是 cJSON 庫:
#include "cJSON.h"
cJSON *json;
得到 JSON 對象后,我們需要將 JSON 數據解析為對象:
char *jsonstring = "{\"name\":\"Alice\", \"age\":20, \"grades\":{\"math\":90, \"english\":80}}";
json = cJSON_Parse(jsonstring);
if (json) {
// 解析成功
} else {
// 解析失敗
}
在解析成功后,我們可以根據 JSON 對象的類型,使用相應的函數獲取數值:
char *name = cJSON_GetObjectItem(json, "name")->valuestring;
int age = cJSON_GetObjectItem(json, "age")->valueint;
cJSON *grades = cJSON_GetObjectItem(json, "grades");
if (grades) {
int math = cJSON_GetObjectItem(grades, "math")->valueint;
int english = cJSON_GetObjectItem(grades, "english")->valueint;
}
以上代碼中,我們首先通過 cJSON_GetObjectItem 函數獲取 JSON 對象的屬性值,然后根據其類型獲取對應的數值。當 JSON 對象是一個 JSON 數組時,我們可以使用 cJSON_GetArrayItem 函數獲取其中的元素。
最后,當我們使用 cJSON 庫完成了對 JSON 對象的解析后,需要釋放 cJSON 對象所占用的內存:
cJSON_Delete(json);
以上便是使用 C 語言解析 JSON 多層嵌套數據的過程。如果想要更深入地了解 JSON 庫的使用,可以查看 cJSON 庫的官方文檔。
上一篇vue3 書