在C語言中,我們經(jīng)常需要將JSON字符串轉(zhuǎn)換為數(shù)組。JSON是一種輕量級的數(shù)據(jù)交換格式,幾乎所有的編程語言都支持它。在C語言中,我們可以使用第三方庫來處理JSON字符串。
#include <stdio.h> #include <jansson.h> int main() { const char* json_str = "[1, 2, 3, 4, 5]"; // 定義JSON字符串 json_error_t error; // 定義錯誤信息結(jié)構(gòu)體 json_t* json_arr = json_loads(json_str, 0, &error); // 將JSON字符串轉(zhuǎn)換為JSON對象 if (!json_arr) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); // 打印錯誤信息 return 1; } size_t array_len = json_array_size(json_arr); // 獲取JSON數(shù)組長度 for (int i = 0; i < array_len; i++) { json_t* json_elem = json_array_get(json_arr, i); // 獲取JSON數(shù)組元素 int elem_val = json_integer_value(json_elem); // 將JSON數(shù)字類型轉(zhuǎn)換為整型 printf("%d ", elem_val); } printf("\n"); json_decref(json_arr); // 釋放JSON對象內(nèi)存 return 0; }
上述代碼中,我們使用了jansson庫來處理JSON字符串。可以通過json_loads函數(shù)將JSON字符串轉(zhuǎn)換為JSON對象,使用json_array_size函數(shù)獲取JSON數(shù)組長度,使用json_array_get函數(shù)獲取JSON數(shù)組元素。同時,還要注意釋放JSON對象內(nèi)存,避免發(fā)生內(nèi)存泄漏。
這樣,我們就可以在C語言中輕松地將JSON字符串轉(zhuǎn)換為數(shù)組了。
上一篇c json增加元素