在C語(yǔ)言中,要解析JSON字符串需要使用相關(guān)的庫(kù),在這里我們推薦使用CJSON這個(gè)開源的C語(yǔ)言JSON解析器。
首先,我們需要下載并安裝CJSON庫(kù),可以從CJSON的官方網(wǎng)站上下載,也可以使用apt-get(在Ubuntu上)或brew(在MacOS上)等工具進(jìn)行安裝。
//include CJSON library #include <cjson/cJSON.h> int main() { //JSON字符串 char *json_str = "{ \"name\":\"John\", \"age\":30, \"city\":\"New York\" }"; //解析JSON字符串 cJSON *json = cJSON_Parse(json_str); //獲取JSON對(duì)象中的元素 cJSON *name = cJSON_GetObjectItemCaseSensitive(json, "name"); cJSON *age = cJSON_GetObjectItemCaseSensitive(json, "age"); cJSON *city = cJSON_GetObjectItemCaseSensitive(json, "city"); //打印JSON對(duì)象中的元素 printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); printf("City: %s\n", city->valuestring); //釋放內(nèi)存 cJSON_Delete(json); return 0; }
通過上述代碼,我們可以見到如何使用CJSON庫(kù)解析JSON字符串。首先,我們用cJSON_Parse函數(shù)解析JSON字符串,然后使用cJSON_GetObjectItemCaseSensitive函數(shù)獲取JSON對(duì)象中的元素,最后用valuestring或valueint屬性訪問元素值。
需要注意的是,解析完成后需要使用cJSON_Delete函數(shù)釋放內(nèi)存,否則會(huì)造成內(nèi)存泄漏。