JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,被廣泛地應用于前后端數據傳輸中。而在C語言中,為了方便處理JSON格式的數據,我們可以使用CJSON這個第三方庫。通過該庫,我們可以方便地讀取JSON中的數據,本文就介紹如何在C語言中獲取JSON數據中的value值。
首先,我們需要安裝CJSON。可以從GitHub上下載源代碼后進行編譯安裝。
#include <cJSON.h>
int main(void) {
char *json_str = "{\"name\":\"Peter\",\"age\":26,\"hobby\":[\"Coding\",\"Basketball\"]}";
cJSON *json = cJSON_Parse(json_str); // 解析JSON字符串
// 獲取name的值
cJSON *name = cJSON_GetObjectItemCaseSensitive(json, "name");
printf("Name: %s\n", cJSON_GetStringValue(name));
// 獲取age的值
cJSON *age = cJSON_GetObjectItemCaseSensitive(json, "age");
printf("Age: %d\n", cJSON_GetNumberValue(age));
// 獲取hobby數組中的第一個元素
cJSON *hobby = cJSON_GetObjectItemCaseSensitive(json, "hobby");
cJSON *hobby_item = cJSON_GetArrayItem(hobby, 0);
printf("Hobby: %s\n", cJSON_GetStringValue(hobby_item));
cJSON_Delete(json); // 釋放內存
return 0;
}
在上面的代碼中,首先我們需要準備一個JSON字符串。然后通過cJSON_Parse()函數解析JSON字符串,返回一個cJSON結構體指針。接下來,通過cJSON_GetObjectItemCaseSensitive()函數獲取指定名稱的JSON元素,再通過不同的函數獲取對應的值。
例如,通過cJSON_GetStringValue()函數可以獲取元素的string類型的值,cJSON_GetNumberValue()函數可以獲取元素的number類型的值。如果元素是一個數組,我們可以通過cJSON_GetArrayItem()函數獲取其中一個元素。
需要注意的是,解析完JSON后,我們需要手動釋放內存,避免內存泄漏。可以通過cJSON_Delete()函數來釋放。
總的來說,通過CJSON這個第三方庫,可以輕松獲取JSON數據中的元素值,讓C語言處理JSON數據變得更加方便快捷。
上一篇vue 生成答題模板
下一篇c傳輸json數據格式