在C語言中,處理JSON數據結構是一項非常常見的任務。JSON數組轉化是其中一個重要的部分,可以通過C語言的一些庫來完成。以下是一個簡單的JSON數組轉化示例:
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { char *json_string = "[1, 2, 3, 4, 5]"; json_t *root; json_error_t error; root = json_loads(json_string, 0, &error); if (!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } if (!json_is_array(root)) { fprintf(stderr, "error: root is not an array\n"); json_decref(root); return 1; } size_t size = json_array_size(root); for (size_t i = 0; i < size; i++) { json_t *value = json_array_get(root, i); if (!json_is_integer(value)) { fprintf(stderr, "error: element %zu is not an integer\n", i); json_decref(value); json_decref(root); return 1; } int number = json_integer_value(value); printf("%d\n", number); json_decref(value); } json_decref(root); return 0; }
在本例中,我們首先定義了一個JSON數組"json_string",然后通過json_loads函數將其轉換為JSON根對象"root",并檢查它是否為數組類型。如果是數組類型,我們通過json_array_size函數獲取數組大小,并通過json_array_get函數獲取每個元素的值。
注意,我們使用json_decref函數在每個循環迭代和最后一次使用后釋放了值,以避免內存泄漏。
通過這個例子,你可以了解如何使用C語言中的庫來處理JSON數組轉化,以及如何在循環遍歷JSON數組時回收內存。
上一篇python 讀照片數據
下一篇python 讀本地文件