CJSON是一個基于C語言的JSON解析器,它可以解析復雜的JSON對象和數組。在本文中,我們將探討如何使用CJSON解析JSON對象列表。
首先,我們需要確保我們已經安裝了CJSON庫。接下來,我們將從文件中讀取JSON數據。
/* 讀取 JSON 數據并將其存儲在字符串中 */ FILE *fp = fopen("data.json", "r"); char buffer[1024]; fread(buffer, 1, sizeof(buffer), fp); fclose(fp);
接下來,我們將解析JSON數據并將其存儲在C語言結構中。
/* 將 JSON 字符串解析為 CJSON 對象 */ cJSON *root = cJSON_Parse(buffer); /* 檢查解析是否出錯 */ if (root == NULL) { printf("Error before: [%s]\n",cJSON_GetErrorPtr()); return 1; } /* 遍歷 JSON 對象列表并提取數據 */ cJSON *person = NULL; cJSON_ArrayForEach(person, root) { /* 提取姓名 */ cJSON *name = cJSON_GetObjectItemCaseSensitive(person, "name"); printf("Name: %s\n", cJSON_GetStringValue(name)); /* 提取年齡 */ cJSON *age = cJSON_GetObjectItemCaseSensitive(person, "age"); printf("Age: %d\n", cJSON_GetNumberValue(age)); /* 提取城市 */ cJSON *city = cJSON_GetObjectItemCaseSensitive(person, "city"); printf("City: %s\n", cJSON_GetStringValue(city)); }
在上面的代碼中,我們遍歷JSON對象列表,并提取每個對象中的姓名、年齡和城市屬性值。
現在,我們已經成功地使用CJSON解析了JSON對象列表。