JSON是一種輕量級數據交換格式,在C語言中處理JSON數據需要借助第三方庫。我們需要使用cJSON來對JSON數據進行反序列化。
#include <stdio.h> #include <cJSON.h> int main(){ char *json_str = "{\"name\":\"Tom\",\"age\":18,\"is_student\":true}"; cJSON *json = cJSON_Parse(json_str); char *name = cJSON_GetObjectItem(json, "name")->valuestring; int age = cJSON_GetObjectItem(json, "age")->valueint; bool is_student = cJSON_GetObjectItem(json, "is_student")->valueint; printf("Name: %s\n", name); printf("Age: %d\n", age); printf("Is a student: %d\n", is_student); cJSON_Delete(json); return 0; }
在上面的例子中,我們首先需要定義JSON字符串。然后使用cJSON_Parse函數對JSON字符串進行反序列化,得到一個cJSON對象。然后,我們可以使用cJSON_GetObjectItem函數獲取JSON數據中的各個屬性。
cJSON_GetObjectItem函數返回的是cJSON對象,我們可以通過cJSON對象中的不同函數獲取對應的數據類型。在上面的例子中,我們使用了cJSON_GetObjectItem中的valuestring、valueint、valuebool函數分別獲取了屬性name、age、is_student的值。
注意,使用完cJSON對象之后要及時刪除,否則會存在內存泄漏的問題。我們需要使用cJSON_Delete函數釋放cJSON對象占用的內存。