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

c 類序列化成json

吉茹定2年前8瀏覽0評論

在一個 C 語言程序中,數據序列化是常見的操作之一。JSON 是一種通用的數據交換格式,它可以把復雜的對象序列化成字符串,方便網絡傳輸和存儲。下面是一個簡單的示例,展示如何把 C 類對象序列化成 JSON 格式。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
typedef struct _Person {
char name[50];
int age;
char address[100];
} Person;
int main(int argc, char *argv[]) {
Person *p = (Person *)malloc(sizeof(Person));
strcpy(p->name, "Tom");
p->age = 28;
strcpy(p->address, "New York");
json_t *json_obj = json_object();
json_object_set_new(json_obj, "name", json_string(p->name));
json_object_set_new(json_obj, "age", json_integer(p->age));
json_object_set_new(json_obj, "address", json_string(p->address));
const char *json_str = json_dumps(json_obj, JSON_INDENT(2));
printf("%s\n", json_str);
free(p);
free((void *)json_str);
json_decref(json_obj);
return 0;
}

上面的代碼中,定義了一個 Person 類型的結構體,表示一個人的基本信息。使用 malloc 函數動態分配一塊內存,然后填充數據。接著使用 jansson 庫提供的函數,創建一個新的 JSON 對象,并把 Person 的屬性作為鍵值對添加到 JSON 對象中。最后,使用 json_dumps 函數把 JSON 對象序列化成字符串,再打印出來。注意需要在使用完后釋放內存。

使用 JSON 格式序列化數據,在網絡傳輸和存儲中有很多優勢,比如可以跨平臺、跨語言、易于解析和生成等。在 C 語言中,使用 jansson 庫可以方便地進行 JSON 序列化和反序列化操作,可以大大提高開發效率。