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

c 用json持久化對象

錢良釵1年前8瀏覽0評論

隨著互聯網的發展,我們需要越來越多的信息存儲方式來存儲海量的數據。C語言是一種廣泛使用的編程語言,在開發過程中,我們經常需要將數據持久化到磁盤上。而JSON是一種常用的數據格式,也是一種常見的持久化數據的方式。

在C語言中,我們可以使用JSON-c庫來將對象持久化成JSON格式。在使用時,我們需要先安裝JSON-c庫,并將其引入到項目中。

#include <stdio.h>
#include <json-c/json.h>
#define FILENAME "data.json"
struct person {
char name[30];
int age;
};
int main() {
struct person p1 = { "Tom", 20 };
// 創建json對象
json_object *jobj = json_object_new_object();
// 添加屬性
json_object_object_add(jobj, "name", json_object_new_string(p1.name));
json_object_object_add(jobj, "age", json_object_new_int(p1.age));
// 將json對象寫入文件
FILE *fp = fopen(FILENAME, "w");
fputs(json_object_to_json_string(jobj), fp);
fclose(fp);
// 讀取json文件
fp = fopen(FILENAME, "r");
char buf[1024];
fread(buf, sizeof(char), 1024, fp);
fclose(fp);
// 將JSON格式轉換為json對象
json_object *result = json_tokener_parse(buf);
// 獲取屬性
json_object *name;
json_object *age;
json_object_object_get_ex(result, "name", &name);
json_object_object_get_ex(result, "age", &age);
printf("name: %s, age: %d\n", json_object_get_string(name), json_object_get_int(age));
return 0;
}

上述示例代碼中,我們先定義了一個person結構體,然后將其中的兩個屬性添加到一個新的json對象中。最后,我們將json對象持久化到磁盤上。

在讀取json文件時,我們先將文件內容讀取到內存中,然后利用json_tokener_parse方法將其轉換為json對象,再從中獲取需要的屬性。

總體來說,使用JSON-c庫可以輕松地將C語言中的結構體和對象持久化到磁盤上,方便數據的存儲和讀取。