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

c 結(jié)構(gòu)體序列化json

錢斌斌2年前8瀏覽0評論

C 結(jié)構(gòu)體序列化 JSON 是一個常用的操作,將結(jié)構(gòu)體轉(zhuǎn)換成 JSON 字符串,便于在程序中傳遞、存儲和解析。下面我們來學(xué)習(xí)一下如何使用 C 語言實現(xiàn)結(jié)構(gòu)體序列化為 JSON。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
/* 定義一個結(jié)構(gòu)體 */
typedef struct {
char name[20];
int age;
} Person;
/* 將結(jié)構(gòu)體序列化為 JSON 字符串 */
char *person_to_json(Person p)
{
json_t *root = json_object();  // 創(chuàng)建一個 JSON 對象
json_object_set_new(root, "name", json_string(p.name));  // 添加 name 屬性
json_object_set_new(root, "age", json_integer(p.age));  // 添加 age 屬性
char *json_str = json_dumps(root, JSON_INDENT(2));  // 轉(zhuǎn)為 JSON 字符串,并設(shè)置縮進
json_decref(root);  // 釋放 JSON 對象
return json_str;  // 返回 JSON 字符串
}
int main()
{
Person p = {"Tom", 24};
char *json_str = person_to_json(p);
printf("Person: %s\n", json_str);
free(json_str);  // 釋放 JSON 字符串
return 0;
}

上面的代碼中定義了一個 Person 結(jié)構(gòu)體,并實現(xiàn)了將其序列化為 JSON 字符串的函數(shù) person_to_json。在函數(shù)中,我們創(chuàng)建了一個 JSON 對象,并通過 json_object_set_new 函數(shù)向其添加屬性,最后通過 json_dumps 函數(shù)將其轉(zhuǎn)換為字符串。

的確,C 語言沒有內(nèi)置的 JSON 序列化庫,因此我們需要使用外部庫來實現(xiàn)它。jansson 是一個廣泛使用的 C 語言 JSON 序列化和解析庫,具有方便、高效、易用等優(yōu)點。

上一篇delphi5 json
下一篇vue.js 遮罩