JSON 是一種輕量級的數據交換格式,可用于在不同的系統和編程語言之間傳輸數據。 在 C 語言中,我們可以使用不同的庫來解析 JSON 數據。 在這篇文章中,我們將討論如何在 C 語言中解析 JSON 數據,并返回包含列表的 JSON 對象。
我們可以使用 cJSON 庫在 C 語言中解析 JSON 數據。 cJSON 是一個輕量級的 JSON 解析器,易于使用,具有很好的性能。使用 cJSON,我們可以輕松解析 JSON 對象、數組等。
#include <stdio.h>
#include <cJSON.h>
int main() {
const char *json_str = "{\"list\":[\"apple\", \"banana\", \"orange\"]}";
cJSON *json_obj = cJSON_Parse(json_str);
if (json_obj == NULL) {
printf("Error parsing JSON: %s\n", cJSON_GetErrorPtr());
return 1;
}
cJSON *list_obj = cJSON_GetObjectItem(json_obj, "list");
if (list_obj == NULL || !cJSON_IsArray(list_obj)) {
printf("Error getting list object\n");
return 1;
}
int list_size = cJSON_GetArraySize(list_obj);
for (int i = 0; i< list_size; i++) {
cJSON *item = cJSON_GetArrayItem(list_obj, i);
printf("%s\n", cJSON_GetStringValue(item));
}
cJSON_Delete(json_obj);
return 0;
}
在上面的代碼中,我們首先定義了一個包含列表的 JSON 字符串。然后,我們使用 cJSON_Parse 函數將其解析為 cJSON 對象。使用 cJSON_GetObjectItem 函數獲取“list”鍵的值,如果值不是數組,則返回錯誤。然后,我們遍歷數組,并使用 cJSON_GetArrayItem 函數獲取每個項,并使用 cJSON_GetStringValue 函數獲取其字符串值。
最后,我們使用 cJSON_Delete 函數釋放 cJSON 對象的內存。
希望本文能幫助您了解如何在 C 語言中解析 JSON 數據并返回包含列表的 JSON 對象。如果您還需要其他信息,請查看 cJSON 的官方文檔。