欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c讀取json文件返回字符串數組

劉柏宏1年前8瀏覽0評論

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,常被用于Web應用程序間的數據交換。在C語言中,我們可以使用第三方庫將JSON文件中的數據讀取出來,然后返回字符串數組。

#include <stdio.h>
#include <jansson.h>
char **read_json_file(const char *filename) {
json_t *root;
json_error_t error;
root = json_load_file(filename, 0, &error);
if(!root) {
printf("Error: %s\n", error.text);
return NULL;
}
size_t size = json_array_size(root);
char **array = malloc(sizeof(char *) * (size+1));
for(size_t i = 0; i < size; i++) {
json_t *val = json_array_get(root, i);
const char *str_val = json_string_value(val);
array[i] = strdup(str_val);
}
array[size] = NULL;
json_decref(root);
return array;
}
int main() {
char **array = read_json_file("data.json");
if(array) {
for(int i = 0; array[i]; i++) {
printf("%s\n", array[i]);
}
free(array);
}
return 0;
}

首先我們需要引入jansson項目中的頭文件,該項目為C語言提供了解析JSON數據的方法。我們編寫了一個名為read_json_file的函數,該函數的作用是讀取JSON文件,并返回一個字符串數組。在函數內部,我們先使用json_load_file函數讀取JSON文件,如果讀取失敗,則返回NULL。執行完該函數后,我們使用json_array_size獲取數組元素的個數,然后再使用循環去遍歷JSON數組,將數組中的元素保存到字符串數組中。最后,我們需要記得將字符串數組的最后一項記為NULL,以便在調用該數組的時候能獲取到數組的長度。

在main函數中,我們調用了read_json_file函數讀取JSON文件并將返回值賦給了array。如果讀取成功,則會遍歷字符串數組,并打印輸出每一個元素的值。最后,我們需要記得釋放掉字符串數組的內存。