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用于向數組中添加元素。
上一篇vue 手勢滑動事件
下一篇csv變成json格式