在c語言中,有時候需要將JSON中的內容轉換成int類型的數組。下面是一個示例程序,演示如何將JSON字符串解析為int數組:
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { char *json_string = "[1, 2, 3, 4, 5]"; json_t *json_array = json_loads(json_string, 0, NULL); size_t array_size = json_array_size(json_array); int *int_array = (int*) malloc(array_size * sizeof(int)); for (int i = 0; i < array_size; i++) { int_array[i] = (int) json_integer_value(json_array_get(json_array, i)); } json_decref(json_array); // Output the resulting array printf("Array: { "); for (int i = 0; i < array_size; i++) { printf("%d ", int_array[i]); } printf("}\n"); // Free memory free(int_array); return 0; }
首先,我們需要將JSON字符串加載為json_t對象,使用json_loads()函數完成這一步操作。然后,我們可以使用json_array_size()函數來獲取該JSON數組的元素個數。接著,我們使用malloc()函數為int數組分配內存,并使用json_array_get()函數將JSON數組中的元素轉換為json_t對象。最后,我們使用json_integer_value()函數將json_t對象中的值轉換為int類型,并將其存儲在int數組中。
最后,在輸出結果的同時,我們也需要確保釋放分配的內存,使用json_decref()函數釋放json_t對象的引用,并使用free()函數釋放int數組的內存。