C語言是一門廣泛使用的程序設計語言,許多程序員會選擇使用C語言來遍歷解析JSON對象。JSON是一種輕量級的數據交換格式,在互聯網領域廣泛應用。以下是C語言中遍歷解析JSON對象的示例。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <cjson/cJSON.h> int main(void) { const char* json_data = "{\"name\":\"John\",\"age\":30,\"cars\":[\"Ford\",\"BMW\",\"Fiat\"]}"; cJSON* json = cJSON_Parse(json_data); if (json == NULL) { const char* error_ptr = cJSON_GetErrorPtr(); if (error_ptr != NULL) { printf("Error parsing JSON: %s\n", error_ptr); } } else { cJSON* name = cJSON_GetObjectItemCaseSensitive(json, "name"); printf("Name: %s\n", cJSON_GetStringValue(name)); cJSON* age = cJSON_GetObjectItemCaseSensitive(json, "age"); printf("Age: %d\n", cJSON_GetNumberValue(age)); cJSON* cars = cJSON_GetObjectItemCaseSensitive(json, "cars"); if (cJSON_IsArray(cars)) { printf("Cars:\n"); cJSON_ArrayForEach(cars, car) { printf("- %s\n", cJSON_GetStringValue(car)); } } cJSON_Delete(json); } return EXIT_SUCCESS; }
在這個示例中,我們使用了cJSON庫來解析JSON對象。首先,我們需要定義一個const char指針來存儲JSON對象的字符串形式。然后我們使用cJSON_Parse函數將字符串解析為JSON對象,并將解析結果存儲在一個cJSON指針中。
接下來,我們使用cJSON_GetObjectItemCaseSensitive函數來獲取JSON對象中相應的元素,這里我們獲取了name、age和cars元素。cJSON_GetObjectItemCaseSensitive是一個安全獲取元素的函數,它會檢查是否存在該元素。如果該元素不存在,程序不會崩潰,而是返回NULL。
然后我們分別使用cJSON_GetStringValue和cJSON_GetNumberValue函數獲取name和age元素的值,并使用printf函數將獲取到的值打印出來。
最后,我們使用cJSON_IsArray函數判斷cars元素是否為JSON數組。如果是數組,我們可以使用cJSON_ArrayForEach宏來遍歷數組中的元素,獲取每個元素的值并將其打印出來。
最后,我們使用cJSON_Delete函數來釋放JSON對象占用的內存。