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

c 如何解析json文件內容

李中冰2年前9瀏覽0評論

在C語言中,解析JSON文件內容的方法與其他編程語言有些不同。

首先,我們需要使用第三方庫來處理JSON文件。常用的有cJSON和jansson。 在本文中,我們以cJSON為例進行介紹。

首先,我們需要在程序中引用cJSON庫。在Linux環境中,可以使用以下命令安裝:

sudo apt-get install libcjson-dev

注意,如果使用其他操作系統,需要根據實際情況進行安裝。

安裝完成后,我們可以開始解析JSON文件。以下是一個示例的JSON文件:

{
"name": "Jack",
"age": 25,
"isStudent": true,
"scores": [80, 90, 95],
"address": {
"city": "Shanghai",
"street": "Nanjing Road"
}
}

我們可以用以下代碼來解析JSON文件中的內容:

#include <stdio.h>
#include <cJSON.h>
int main()
{
char *json_str = "{\"name\":\"Jack\",\"age\":25,\"isStudent\":true,\"scores\":[80,90,95],\"address\":{\"city\":\"Shanghai\",\"street\":\"Nanjing Road\"}}";
cJSON *json = cJSON_Parse(json_str);
cJSON *name = cJSON_GetObjectItem(json, "name");
cJSON *age = cJSON_GetObjectItem(json, "age");
cJSON *isStudent = cJSON_GetObjectItem(json, "isStudent");
cJSON *scores = cJSON_GetObjectItem(json, "scores");
cJSON *address = cJSON_GetObjectItem(json, "address");
cJSON *city = cJSON_GetObjectItem(address, "city");
cJSON *street = cJSON_GetObjectItem(address, "street");
printf("Name: %s\n", name->valuestring);
printf("Age: %d\n", age->valueint);
printf("Is Student: %s\n", cJSON_IsTrue(isStudent) ? "true" : "false");
cJSON *score = NULL;
cJSON_ArrayForEach(score, scores)
{
printf("Score: %d\n", score->valueint);
}
printf("City: %s\n", city->valuestring);
printf("Street: %s\n", street->valuestring);
cJSON_Delete(json);
return 0;
}

在這個示例中,我們首先將JSON字符串存儲在一個char型指針中。然后使用cJSON_Parse()函數將這個字符串轉換為cJSON對象。 接著,我們使用cJSON_GetObjectItem()函數根據鍵名獲取對應的值。 對于數組類型的值,我們需要用cJSON_ArrayForEach()函數遍歷數組中的每個元素。

解析完成后,我們使用cJSON_Delete()函數來釋放內存。

以上就是在C語言中解析JSON文件內容的方法。希望對大家有所幫助。