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

c 解析數組類型json

老白1年前10瀏覽0評論

在 C 語言中解析一個數組類型的 JSON 文件,可以使用第三方庫來實現,比如 cJSON。cJSON 是一個在 C 語言使用的解析 JSON 的庫,使用起來非常簡單。

首先,我們需要在代碼中引入 cJSON 庫,這個庫的下載方式有兩種,一種是下載源代碼編譯安裝,另一種則是在 GitHub 上下載可以直接使用的頭文件和源代碼文件。假設我們已經將 cJSON 下載下來了,我們需要在代碼中引入頭文件,如下所示。

#include "cJSON.h"

然后,定義一個字符串變量,將我們要解析的 JSON 字符串賦值給這個變量。比如,我們要解析的 JSON 文件如下所示:

{
"name": "Tom",
"age": 22,
"hobbies": ["reading", "music", "sports"]
}

那么我們可以定義一個字符數組來存儲這個 JSON 字符串,如下所示。

char json_str[] = "{\"name\":\"Tom\",\"age\":22,\"hobbies\":[\"reading\",\"music\",\"sports\"]}";

接下來,我們需要通過 cJSON_Parse() 函數來解析這個 JSON 字符串。這個函數將會返回一個 cJSON 對象類型的指針,通過這個指針,我們可以獲取 JSON 中的各個字段的值。如下所示。

cJSON *root = cJSON_Parse(json_str);

在獲取 hobbies 字段的值時,由于它是一個數組類型的值,我們需要使用 cJSON_GetObjectItem() 函數獲取這個字段的 cJSON 對象指針,然后再通過 cJSON_GetArrayItem() 函數獲取數組中的每一個元素值。如下所示。

cJSON *hobbies = cJSON_GetObjectItem(root, "hobbies");
int hobbies_size = cJSON_GetArraySize(hobbies);
for (int i = 0; i< hobbies_size; i++) {
cJSON *hobby = cJSON_GetArrayItem(hobbies, i);
printf("hobby %d: %s\n", i, hobby->valuestring);
}

最后,在使用完 cJSON 對象的指針后,我們需要調用 cJSON_Delete() 函數來釋放內存。如下所示。

cJSON_Delete(root);

以上就是在 C 語言中解析數組類型的 JSON 文件的方式。使用 cJSON 庫可以方便快捷地實現解析 JSON 功能,為我們的開發工作帶來很大便利性。