色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c語言保存到json文件

方一強1年前7瀏覽0評論

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字符串內存。