C語言作為一門流行的編程語言,不僅常用于系統編程,還廣泛用于數據處理和網絡通信。JSON作為一種輕量級的數據交換格式,被廣泛使用。在C語言中,我們需要對JSON數據進行解析,以便正確處理和利用這些數據。本文將介紹如何使用C語言解析JSON數組。
/* * 解析JSON數組 */ #include#include #include "cJSON.h" int main() { const char *json_str = "[{\"name\": \"Tom\", \"age\": 20}, {\"name\": \"John\", \"age\": 22}]"; cJSON *json = cJSON_Parse(json_str); if (json == NULL) { printf("cJSON parse error! \n"); return -1; } int array_size = cJSON_GetArraySize(json); for (int i = 0; i< array_size; i++) { cJSON *item = cJSON_GetArrayItem(json, i); 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; }
代碼使用了cJSON庫來解析JSON數組。在main()函數中,我們定義了一個JSON字符串json_str,其中包含了兩個JSON對象。我們使用cJSON_Parse()函數將其解析成一個cJSON對象,并判斷其是否為NULL,如果是,則說明解析失敗,打印錯誤信息。然后,通過調用cJSON_GetArraySize()函數獲取數組的大小,并使用循環遍歷JSON數組中的每個元素。在循環中,使用cJSON_GetArrayItem()函數獲取數組的第i個元素,然后使用cJSON_GetObjectItem()函數獲取其中的"name"和"age"屬性,并打印它們的值。
使用C語言解析JSON數組需要用到cJSON庫。該庫是一個輕量級的、ANSI C語言編寫的JSON解析器和生成器。使用該庫,我們可以解析和生成JSON數據,并且它的API接口非常簡單易用。因此,在C語言編寫的項目中,使用cJSON庫來解析和生成JSON數據,是一個不錯的選擇。