在C語言中,我們經常要處理JSON結構的數據,而JSON常常以字符串的形式傳遞過來。幸運的是,在C語言中,我們可以將JSON字符串轉換為數組,方便我們后續的數據處理。
以下是將JSON字符串轉換為數組的代碼示例:
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { const char *json_string = "{\"name\":\"Tom\", \"age\":18, \"gender\":\"male\"}"; json_t *root; json_error_t error; /* 將JSON字符串轉換為JSON對象 */ root = json_loads(json_string, 0, &error); if (!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } /* 將JSON對象轉換為數組 */ if (json_typeof(root) == JSON_ARRAY) { size_t i; json_t *value; json_array_foreach(root, i, value) { printf("element %ld: %s\n", i, json_typeof(value)); } } else { printf("error: root is not an array\n"); } /* 釋放JSON對象 */ json_decref(root); return 0; }
在上述代碼中,我們首先定義了一個JSON字符串,并將其轉換為JSON對象。接下來,我們使用json_typeof函數來判斷root是否為JSON數組。如果root是一個JSON數組,我們就可以使用json_array_foreach函數來遍歷數組中的所有元素,并對其進行后續處理。
最后,我們使用json_decref函數來釋放root所占用的內存空間,避免內存泄漏。
通過以上代碼,我們可以很方便地將JSON字符串轉換為數組,并對其進行后續的處理。