在使用C語言解析JSON數(shù)據(jù)時,我們可以使用第三方庫來簡化操作。這里我們使用 cJSON。
首先,我們需要將JSON數(shù)據(jù)讀入內(nèi)存。假設我們已經(jīng)讀入的數(shù)據(jù)存在了一個字符串變量中。
char* json_data = "{\"name\": \"張三\", \"age\": 20, \"is_student\": true}";
接著,我們可以使用 cJSON_Parse 函數(shù)將其轉換成 cJSON 對象。
cJSON* json_root = cJSON_Parse(json_data);
現(xiàn)在,我們可以使用 cJSON_GetObjectItem 函數(shù)來獲取 JSON 屬性值。假設我們要獲取 name 屬性對應的值,則代碼如下:
cJSON* name_json = cJSON_GetObjectItem(json_root, "name"); char* name = name_json->valuestring;
其中,"name" 為屬性名稱,valuestring 為屬性值類型為字符串時可以使用的獲取屬性值的方法。如果屬性值類型為數(shù)字,則可使用 valueint,如果為布爾型,則可使用 valuebool。
完整代碼如下:
#include "cJSON.h" #includeint main(int argc, char** argv) { char* json_data = "{\"name\": \"張三\", \"age\": 20, \"is_student\": true}"; cJSON* json_root = cJSON_Parse(json_data); cJSON* name_json = cJSON_GetObjectItem(json_root, "name"); char* name = name_json->valuestring; printf("%s\n", name); return 0; }