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

csv 轉json c

錢多多2年前8瀏覽0評論

CSV和JSON都是常用的數據格式,CSV是逗號分隔值的縮寫,它由行和列組成,易于使用。JSON是JavaScript對象表示法的縮寫,它用于傳輸和存儲結構化數據。CSV轉JSON是一種常見的數據格式轉換,現在我們來討論如何用C語言來實現這個過程。

#include <stdio.h>
#include <jansson.h> //需要安裝json-c庫
int main()
{
FILE* fp = fopen("example.csv", "r");
if (fp == NULL)
{
printf("File open error!\n");
return 1;
}
char line[1024];
char* keys[1024];
if (fgets(line, 1024, fp))
{
int i = 0;
char* token = strtok(line, ",\n"); //用逗號分隔
while (token != NULL)
{
keys[i++] = token;
token = strtok(NULL, ",\n");
}
}
json_t* root = json_array(); //json數組
while (fgets(line, 1024, fp))
{
int i = 0;
char* token = strtok(line, ",\n");
json_t* obj = json_object(); //json對象
while (token != NULL)
{
json_object_set_new(obj, keys[i], json_string(token)); //key-value
i++;
token = strtok(NULL, ",\n");
}
json_array_append_new(root, obj); //添加對象到數組
}
fclose(fp);
char* json_str = json_dumps(root, JSON_INDENT(4)); //縮進4個空格
printf("%s\n", json_str);
json_decref(root); //釋放內存
free(json_str);
return 0;
}

上面的代碼先打開一個CSV文件,讀取文件的第一行作為JSON對象的key,然后讀取剩下的每一行作為JSON對象的value,將這些對象添加到JSON數組中,最后將JSON結構轉成字符串輸出。使用json-c庫的json_t類型來實現JSON對象和JSON數組的操作,json_object_set_new用于給對象添加屬性,json_array_append_new用于向數組中添加元素。