C語言是一個廣泛使用的編程語言,它可以用于開發各種程序,包括保存數據到JSON文件。JSON是一種輕量級數據格式,應用廣泛,包括Web應用程序中。在C語言中,我們可以通過讀寫JSON文件來保存數據。
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<jansson.h> int main() { // 創建JSON對象并設置數據 json_t *root = json_object(); json_object_set_new(root, "name", json_string("John")); json_object_set_new(root, "age", json_integer(30)); json_t *hobbies = json_array(); json_array_append_new(hobbies, json_string("reading")); json_array_append_new(hobbies, json_string("traveling")); json_object_set_new(root, "hobbies", hobbies); // 打開JSON文件并將JSON字符串寫入文件 FILE *fp = fopen("data.json", "w"); if (!fp) { fprintf(stderr, "Failed to open data.json file\n"); return 1; } char *json_str = json_dumps(root, JSON_INDENT(4)); size_t bytes = fwrite(json_str, strlen(json_str), 1, fp); printf("%ld bytes written to data.json file\n", bytes); fclose(fp); // 從JSON文件中讀取數據 char buffer[1024]; fp = fopen("data.json", "r"); if (!fp) { fprintf(stderr, "Failed to open data.json file\n"); return 1; } bytes = fread(buffer, 1024, 1, fp); fclose(fp); // 解析JSON字符串并獲取數據 json_error_t error; root = json_loads(buffer, 0, &error); if (!root) { fprintf(stderr, "Failed to parse JSON string: %s\n", error.text); return 1; } const char *name = json_string_value(json_object_get(root, "name")); int age = json_integer_value(json_object_get(root, "age")); json_t *hobbies_array = json_object_get(root, "hobbies"); int hobbies_count = json_array_size(hobbies_array); printf("Name: %s\nAge: %d\nHobbies count: %d\n", name, age, hobbies_count); // 釋放JSON對象及字符串內存 json_decref(root); free(json_str); return 0; }
以上代碼演示了如何使用jansson庫在C語言中保存數據到JSON文件,并從文件中讀取數據。在代碼中,我們首先創建一個json_t
對象,并設置數據。然后我們打開一個文件,將JSON字符串寫入文件。接下來,我們從JSON文件中讀取數據,并解析JSON字符串以獲取數據。最后,我們釋放JSON對象及JSON字符串內存。