在進行C語言JSON解析時,有時需要將JSON數組轉為一維數組。一維數組在C語言中使用較為普遍,具有較高的靈活性和可操作性。下面將介紹如何使用C語言處理JSON數組并轉為一維數組。
#include <stdio.h> #include <jansson.h> int main() { const char *json_str = "[1, 2, 3, 4, 5]"; json_error_t error; json_t *json = json_loads(json_str, 0, &error); // 將JSON字符串解析為JSON對象 if (!json_is_array(json)) { printf("json is not an array!\n"); return 1; } int array_length = json_array_size(json); // 獲取JSON數組的長度 int *array = (int *)malloc(array_length * sizeof(int)); // 動態分配內存,創建一維數組 for (int i = 0; i < array_length; i++) { json_t *element = json_array_get(json, i); // 獲取JSON數組中的元素 if (!json_is_integer(element)) { printf("element %d is not an integer!\n", i); return 1; } array[i] = json_integer_value(element); // 將JSON數值存入一維數組中 } json_decref(json); // 釋放JSON對象占用的內存 printf("The array is: "); for (int i = 0; i < array_length; i++) { printf("%d ", array[i]); // 打印一維數組 } printf("\n"); free(array); // 釋放一維數組占用的內存 return 0; }
上述代碼中,首先使用json_loads函數將JSON字符串解析為JSON對象,然后判斷JSON對象是否為數組。接著獲取JSON數組的長度,動態分配內存,并循環遍歷JSON數組中每個元素,將JSON數值存入一維數組中。最后打印一維數組并釋放占用的內存。
以上便是C語言JSON解析中如何處理JSON數組并轉為一維數組的方法。
上一篇python 設定字符集
下一篇vue cli模板