在C語言中,我們可以使用第三方庫cJSON來遍歷并取出JSON數(shù)據(jù)。首先,我們需要安裝cJSON庫,然后在代碼中包含它的頭文件。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "cJSON.h" int main() { char *json_string = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; cJSON *json = cJSON_Parse(json_string); if (json == NULL) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); return 1; } cJSON *name = cJSON_GetObjectItemCaseSensitive(json, "name"); if (cJSON_IsString(name) && (name->valuestring != NULL)) { printf("Name: %s\n", name->valuestring); } cJSON *age = cJSON_GetObjectItemCaseSensitive(json, "age"); if (cJSON_IsNumber(age)) { printf("Age: %d\n", age->valueint); } cJSON *city = cJSON_GetObjectItemCaseSensitive(json, "city"); if (cJSON_IsString(city) && (city->valuestring != NULL)) { printf("City: %s\n", city->valuestring); } cJSON_Delete(json); return 0; }
在上面的代碼中,我們首先創(chuàng)建了一個JSON字符串,然后使用cJSON_Parse函數(shù)將其解析成一個cJSON對象。然后,我們使用cJSON_GetObjectItemCaseSensitive函數(shù)獲取JSON對象中的屬性,并使用cJSON_Is*函數(shù)判斷屬性的類型。最后,我們使用cJSON_Delete函數(shù)釋放內(nèi)存。