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

c json轉csv文件

老白1年前8瀏覽0評論

JSON是一種輕量級的數據交換格式,而CSV是一種比較常見的電子數據表格格式。在實際工作中,我們可能需要將JSON格式的數據轉換成CSV格式,以便于進行數據分析和處理。下面是使用C語言將JSON轉換成CSV文件的示例代碼。

#include <stdio.h>
#include <jansson.h>
int main() {
// 從文件讀取JSON數據
FILE *fp = fopen("input.json", "r");
if (!fp) {
printf("Cannot open input file.\n");
return 1;
}
fseek(fp, 0, SEEK_END);
long file_size = ftell(fp);
fseek(fp, 0, SEEK_SET);
char *json_str = (char *) malloc(file_size + 1);
fread(json_str, 1, file_size, fp);
json_str[file_size] = '\0';
fclose(fp);
// 解析JSON數據
json_error_t error;
json_t *root = json_loads(json_str, 0, &error);
if (!root) {
printf("JSON parse error: %s\n", error.text);
return 1;
}
// 創建CSV文件
FILE *csv_fp = fopen("output.csv", "w");
if (!csv_fp) {
printf("Cannot create output file.\n");
return 1;
}
// 寫入CSV表頭
fprintf(csv_fp, "id,name,age,gender\n");
// 遍歷JSON數組
size_t array_size = json_array_size(root);
for (size_t i = 0; i< array_size; i++) {
json_t *item = json_array_get(root, i);
if (!json_is_object(item)) {
printf("Array item is not object.\n");
continue;
}
// 寫入CSV數據
json_t *id = json_object_get(item, "id");
json_t *name = json_object_get(item, "name");
json_t *age = json_object_get(item, "age");
json_t *gender = json_object_get(item, "gender");
if (!id || !json_is_integer(id) || !name || !json_is_string(name) ||
!age || !json_is_integer(age) || !gender || !json_is_string(gender)) {
printf("Invalid object item.\n");
continue;
}
fprintf(csv_fp, "%lld,%s,%lld,%s\n", json_integer_value(id), json_string_value(name),
json_integer_value(age), json_string_value(gender));
}
// 釋放資源
fclose(csv_fp);
json_decref(root);
free(json_str);
return 0;
}