JSON是一種輕量級(jí)的數(shù)據(jù)格式,而C語(yǔ)言作為一門(mén)高效的編程語(yǔ)言,可以用來(lái)進(jìn)行JSON數(shù)據(jù)的解析和轉(zhuǎn)換。在C語(yǔ)言中,通過(guò)使用JSON庫(kù),可以將字符串轉(zhuǎn)換為JSON的數(shù)組對(duì)象。
#include#include #include "cjson/cJSON.h" int main(void) { const char *json_string = "[{\"name\":\"Tom\",\"age\":18},{\"name\":\"Jerry\",\"age\":22}]"; cJSON *json = cJSON_Parse(json_string); cJSON *item = NULL; if(json == NULL) { printf("Error before: [%s]\n",cJSON_GetErrorPtr()); } else { cJSON_ArrayForEach(item,json) { cJSON *name = cJSON_GetObjectItem(item,"name"); cJSON *age = cJSON_GetObjectItem(item,"age"); printf("name:%s,age:%d\n",name->valuestring,age->valueint); } } cJSON_Delete(json); return 0; }
在這段代碼中,我們通過(guò)cJSON庫(kù)中的函數(shù)cJSON_Parse()將JSON字符串轉(zhuǎn)換為JSON對(duì)象,然后通過(guò)cJSON_ArrayForEach()函數(shù)遍歷數(shù)組對(duì)象中的每一個(gè)元素,最后通過(guò)cJSON_GetObjectItem()函數(shù)獲取每個(gè)元素中的屬性值,進(jìn)行打印輸出。
需要注意的是,在C語(yǔ)言中使用cJSON庫(kù)進(jìn)行JSON字符串的解析,需要先安裝該庫(kù),將其頭文件包含進(jìn)來(lái),才能正常進(jìn)行轉(zhuǎn)換。