在C語言中,我們經常需要將數據以JSON(JavaScript Object Notation)的格式寫入文件。JSON是一種輕量級的數據交換格式,在Web開發中得到了廣泛使用。
下面是使用C語言將數據寫成JSON格式并寫入文件的示例代碼
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { json_t *json_root; json_t *json_array; json_t *json_obj; json_t *json_name; json_t *json_age; json_t *json_courses; char *json_str; int size = 0; int i; FILE *fp; // 構造JSON數據 json_root = json_object(); json_array = json_array(); for(i = 0; i< 3; i++) { json_obj = json_object(); json_name = json_string("小明"); json_age = json_integer(20); json_courses = json_array(); json_array_append_new(json_courses, json_string("數學")); json_array_append_new(json_courses, json_string("語文")); json_object_set_new(json_obj, "name", json_name); json_object_set_new(json_obj, "age", json_age); json_object_set_new(json_obj, "courses", json_courses); json_array_append_new(json_array, json_obj); } json_object_set_new(json_root, "students", json_array); json_str = json_dumps(json_root, JSON_INDENT(4)); // 寫入JSON文件 if((fp = fopen("students.json", "wb")) == NULL) { puts("打開文件失敗!"); exit(1); } size = fwrite(json_str, 1, strlen(json_str), fp); fclose(fp); free(json_str); json_decref(json_root); return 0; }
首先,我們使用jansson庫來幫助我們構造JSON數據和寫入JSON文件。在代碼中,我們構造了一個包含三個學生信息的JSON對象,并將其寫入一個名為“students.json”的文件中。代碼中的json_dumps()函數將JSON對象轉換為JSON字符串,并使用fwrite()函數將字符串寫入文件。