C 讀取 json 轉(zhuǎn)字符串?dāng)?shù)組是一種非常常見的編程任務(wù),它可以讓我們方便地讀取 json 數(shù)據(jù),并將其轉(zhuǎn)換為字符串?dāng)?shù)組。
#include <stdio.h> #include <jansson.h> int main() { json_t *root; json_error_t error; int i; char *json_string = "[\"Hello\", \"world\"]"; root = json_loads(json_string, JSON_DECODE_ANY, &error); if (!root) { printf("JSON decoding failed: %s\n", error.text); return 1; } if (!json_is_array(root)) { printf("JSON root is not an array!\n"); return 1; } for (i = 0; i < json_array_size(root); ++i) { json_t *element = json_array_get(root, i); if (!json_is_string(element)) { printf("JSON element is not a string!\n"); return 1; } printf("%s", json_string_value(element)); if (i != json_array_size(root) - 1) { printf(", "); } } json_decref(root); return 0; }
代碼中使用了 jansson 庫,這是一個 C 語言的 json 解析庫,可以方便地處理 json 數(shù)據(jù)。
在這個例子中,我們首先將 json 數(shù)據(jù)轉(zhuǎn)換為 jansson 中的 json_t 對象。然后,我們判斷該 json_t 是否為數(shù)組類型,如果是,則遍歷數(shù)組的每個元素,判斷它是否為字符串類型,如果是,則將該字符串打印出來。
最后,我們需要釋放 json_t 對象,避免內(nèi)存泄漏。