C語言中的JSON(JavaScript Object Notation)可以非常方便地將數據進行序列化和反序列化。在JSON中,數組是一種常見的數據類型,可以使用C語言中的JSON庫將JSON轉化為數組。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { char *json_string = "[1, 2, 3, 4, 5]"; json_error_t error; json_t *json = json_loads(json_string, 0, &error); if (!json) { fprintf(stderr, "Error loading JSON: %s\n", error.text); exit(1); } else if (!json_is_array(json)) { fprintf(stderr, "JSON is not an array\n"); exit(1); } int i, length = json_array_size(json); int *arr = (int *)malloc(length * sizeof(int)); for (i = 0; i < length; i++) { json_t *item = json_array_get(json, i); if (!json_is_integer(item)) { fprintf(stderr, "JSON item at index %d is not an integer\n", i); exit(1); } arr[i] = json_integer_value(item); } // 對數組進行操作 for (i = 0; i < length; i++) { printf("%d ", arr[i]); } free(arr); json_decref(json); return 0; }
以上代碼使用了jansson庫將JSON轉為數組,首先用json_loads()函數將JSON字符串轉為json_t類型的變量,然后用json_is_array()函數檢查JSON變量是否為數組類型。接著使用json_array_size()函數獲取數組的長度,并按照順序遍歷數組,檢查每個元素的類型是否為整數。最后按需求對數組進行操作。