在C語言中,JSON字符串是一個非常常見的數據格式。在JSON字符串中,包含著一些數組。如果需要在C語言中操作這些數組,就需要將JSON字符串轉換成C語言中的數組。接下來我們來講一下如何實現。
#include#include #include #include int main() { const char *json_str = "[1, 2, 3, 4, 5]"; //JSON數組字符串 json_error_t error; //解析JSON字符串時的錯誤信息 json_t *root; //指向最外層的JSON對象的指針 json_t *element; //指向數組中的元素的指針 int i, n; //計數器 root = json_loads(json_str, 0, &error); //將JSON字符串解析成JSON對象 if(!root) { fprintf(stderr, "JSON解析失敗!\n"); return EXIT_FAILURE; } if(!json_is_array(root)) { //判斷是否是數組 fprintf(stderr, "JSON不是一個數組!\n"); json_decref(root); //釋放JSON對象 return EXIT_FAILURE; } n = json_array_size(root); //獲取數組元素個數 int array[n]; //定義C語言中的數組 for(i = 0; i< n; i++) { //遍歷數組 element = json_array_get(root, i); //獲取數組中的元素 if(!json_is_integer(element)) { //判斷是否是數字 fprintf(stderr, "數組中包含非數字元素!\n"); json_decref(root); //釋放JSON對象 return EXIT_FAILURE; } array[i] = json_integer_value(element); //將元素的值存入數組 } for(i = 0; i< n; i++) { //遍歷數組 printf("%d\n", array[i]); //輸出數組中的元素 } json_decref(root); //釋放JSON對象 return EXIT_SUCCESS; //程序正常結束 }
在上面的代碼中,我們使用了jansson庫來解析JSON字符串。首先我們將JSON字符串解析成JSON對象,然后檢查它是否是一個數組。如果是一個數組,我們就遍歷它,對數組中的每個元素進行類型檢查,并將每個元素的值存入一個C語言中的數組中。最后再遍歷C語言中的數組,打印出其中的元素即可。
上一篇c#如何拼接json
下一篇c數據轉json