JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,在 C 語言中也有許多可以使用的 JSON 庫,例如 Jansson 和 cJSON。在本文中,我們將介紹如何在 C 語言中使用 cJSON 讀寫 JSON。
首先,使用 cJSON 庫需要先下載并安裝該庫。接下來,讓我們來看一個簡單的 JSON 示例:
{ "name": "Lucy", "age": 18, "hobby": ["swimming", "reading"] }
在使用 cJSON 讀取這個 JSON 數據時,可以使用以下代碼:
cJSON* root = cJSON_Parse(json_data);
其中,json_data 是指上面的 JSON 示例。cJSON_Parse() 函數將 json_data 解析成一個 cJSON 對象。在解析完畢后,可以使用 cJSON_GetObjectItem() 函數獲取對象中的元素。例如,在獲取名稱為 "name" 的元素時,可以使用以下代碼:
cJSON* name_element = cJSON_GetObjectItem(root, "name");
這樣就可以獲取 JSON 對象中的 "name" 元素了。獲取到元素后,可以使用 cJSON_Print() 函數將該元素輸出成 JSON 格式,例如:
char* name_json = cJSON_Print(name_element); printf("name_json: %s", name_json);
上述代碼可以將獲取到的 JSON 元素輸出成以下格式:
"name": "Lucy"
在寫入 JSON 數據時,可以使用 cJSON_CreateObject() 函數創建一個 cJSON 對象,并使用 cJSON_AddItemToObject() 函數添加元素,例如:
cJSON* root = cJSON_CreateObject(); cJSON_AddItemToObject(root, "name", cJSON_CreateString("Lucy")); cJSON_AddItemToObject(root, "age", cJSON_CreateNumber(18));
上述代碼可以創建一個 JSON 對象,其中包含 "name" 和 "age" 兩個元素,分別為字符串 "Lucy" 和數字 18。之后,可以使用 cJSON_Print() 函數將 JSON 輸出成字符串。
綜上所述,使用 cJSON 庫可以非常方便地在 C 語言中讀寫 JSON 數據。通過上述代碼示例,在讀寫 JSON 數據時可以更加高效地操作。