欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 寫入json追加

傅智翔1年前9瀏覽0評論

在C語言中,我們可以使用第三方庫來實現將數據寫入JSON文件中。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
int main()
{
// 打開JSON文件
FILE *fp = fopen("data.json", "r+");
// 如果JSON文件不存在,則創建一個新文件
if (fp == NULL) {
fp = fopen("data.json", "w+");
fclose(fp);
fp = fopen("data.json", "r+");
}
// 載入JSON內容
fseek(fp, 0, SEEK_END);
long size = ftell(fp);
fseek(fp, 0, SEEK_SET);
char *content = (char *)malloc(size + 1);
fread(content, 1, size, fp);
content[size] = '\0';
// 解析原始JSON數據
json_t *root;
json_error_t error;
root = json_loads(content, 0, &error);
free(content);
// 如果原始JSON數據為空,則創建一個新的JSON數組
if (root == NULL) {
root = json_array();
}
// 在JSON數組中添加新的JSON對象
json_t *new_obj = json_object();
json_object_set_new(new_obj, "name", json_string("John"));
json_object_set_new(new_obj, "age", json_integer(25));
json_array_append_new(root, new_obj);
// 將新的JSON數據寫入JSON文件中
content = json_dumps(root, JSON_INDENT(4));
fseek(fp, 0, SEEK_SET);
fwrite(content, strlen(content), 1, fp);
fclose(fp);
// 釋放資源
json_decref(root);
free(content);
return 0;
}

上述代碼中,我們使用了jansson庫來讀取和寫入JSON數據。

在主函數中,我們首先檢查是否存在指定的JSON文件。如果該文件不存在,則創建新文件并打開它。

接著,我們讀取已存在的JSON內容并解析它。

如果JSON數據為空,則創建一個新的JSON數組。

然后,我們在新的JSON數組中添加一個新的JSON對象。

最后,我們將新的JSON數據寫入JSON文件中,關閉文件并釋放分配的資源。