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; }
上一篇html字體樣式楷體代碼
下一篇html怎么設置圖片平鋪