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

c csv轉換成json

錢琪琛1年前7瀏覽0評論

C和csv都是常用的數據格式,它們被廣泛應用于數據庫、數據處理和數據傳輸。然而,這兩種格式往往與Web應用程序的數據交互不兼容,因為Web應用程序通常采用JSON格式。因此,將CSV格式轉換為JSON格式是非常重要的。下面是一個使用C語言將CSV文件轉換為JSON格式的例子。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 1000
#define MAX_FIELD_LENGTH 100
int main(int argc, char **argv) {
// 轉換文件名
char *csv_file_name;
char *json_file_name;
if (argc == 3) {
csv_file_name = argv[1];
json_file_name = argv[2];
} else {
printf("Usage: %s <csv_file> <json_file>\n", argv[0]);
return 1;
}
// 讀取CSV文件
FILE *csv_file = fopen(csv_file_name, "r");
if (!csv_file) {
printf("Failed to open CSV file: %s\n", csv_file_name);
return 1;
}
char line[MAX_LINE_LENGTH];
char *field[MAX_FIELD_LENGTH];
int field_count;
fgets(line, MAX_LINE_LENGTH, csv_file); //讀取第一行,即標題行
field_count = 0;
field[field_count++] = strtok(line, ",");
while ((field[field_count++] = strtok(NULL, ","))) {}
// 生成JSON
FILE *json_file = fopen(json_file_name, "w");
if (!json_file) {
printf("Failed to create JSON file: %s\n", json_file_name);
fclose(csv_file);
return 1;
}
fprintf(json_file, "[\n");
while (fgets(line, MAX_LINE_LENGTH, csv_file)) {
field_count = 0;
field[field_count++] = strtok(line, ",");
while ((field[field_count++] = strtok(NULL, ","))) {}
fprintf(json_file, "  {\n");
for (int i = 0; i < field_count-1; i++) {
fprintf(json_file, "    \"%s\":\"%s\",\n", field[i], field[i+1]);
i++;
}
fprintf(json_file, "  },\n");
}
fseek(json_file, -2, SEEK_CUR);
fprintf(json_file, "\n]\n");
fclose(csv_file);
fclose(json_file);
return 0;
}

在這個例子中,我們首先從命令行中獲取兩個文件名,一個是要轉換的CSV文件,另一個是要輸出JSON數據的文件。然后,我們打開CSV文件,讀取第一行(即標題行),以確定每個字段的名稱。接下來,我們使用fgets函數對CSV文件的每一行進行解析。我們使用strtok函數將每行分割成一個個逗號分隔的字段,然后將這些字段與標題行中的字段匹配。一旦匹配成功,我們將字段寫入JSON文件。最后,我們在JSON文件最后一個對象后移除逗號,并在文件的開頭和結尾添加中括號,以形成有效的JSON數組格式。

上一篇vue video