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

c 序列號json

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

在 C 語言中,序列化和反序列化 JSON 數(shù)據(jù)是非常常見的操作。為了能夠快速高效地進行這些操作,我們可以使用 c 庫中提供的序列化工具。

其中,序列化的過程就是將 C 語言中的結(jié)構(gòu)體或變量轉(zhuǎn)化為 JSON 格式的文本;而反序列化則是將 JSON 格式的文本轉(zhuǎn)換成 C 語言中的結(jié)構(gòu)體或變量。下面是一個示例代碼:

#include <stdio.h>#include <cJSON.h>int main() {
// 創(chuàng)建一個 cJSON 對象
cJSON *root = cJSON_CreateObject();
// 向 cJSON 對象中添加屬性
cJSON_AddStringToObject(root, "name", "小明");
cJSON_AddNumberToObject(root, "age", 20);
cJSON_AddBoolToObject(root, "isMale", true);
// 序列化 cJSON 對象為 JSON 格式的文本
char *jsonStr = cJSON_Print(root);
printf("序列化后的 JSON 數(shù)據(jù):\n%s\n", jsonStr);
// 反序列化 JSON 格式的文本為 cJSON 對象
cJSON *newRoot = cJSON_Parse(jsonStr);
// 從 cJSON 對象中獲取屬性
const char *name = cJSON_GetObjectItem(newRoot, "name")->valuestring;
int age = cJSON_GetObjectItem(newRoot, "age")->valueint;
bool isMale = cJSON_GetObjectItem(newRoot, "isMale")->valueint;
// 輸出反序列化得到的屬性值
printf("反序列化后的屬性值:\nname=%s, age=%d, isMale=%d\n", name, age, isMale);
// 釋放 cJSON 對象和序列化后的 JSON 數(shù)據(jù)
cJSON_Delete(root);
cJSON_Delete(newRoot);
free(jsonStr);
return 0;
}

在這份代碼中,我們首先通過 cJSON 庫中的 cJSON_CreateObject() 函數(shù)創(chuàng)建了一個 cJSON 對象,然后使用 cJSON_AddStringToObject()、cJSON_AddNumberToObject() 和 cJSON_AddBoolToObject() 函數(shù)向該對象中添加了不同類型的屬性。

接下來,我們使用 cJSON 庫中的 cJSON_Print() 函數(shù)將 cJSON 對象序列化為 JSON 格式的文本,并通過 printf() 函數(shù)輸出到控制臺上。

然后,我們使用 cJSON 庫中的 cJSON_Parse() 函數(shù)將這個 JSON 格式的文本反序列化為一個新的 cJSON 對象,再使用 cJSON_GetObjectItem() 函數(shù)從新的 cJSON 對象中獲取屬性,并將其輸出到控制臺上。

最后,我們使用 cJSON_Delete() 函數(shù)釋放以前創(chuàng)建的兩個 cJSON 對象,并使用 free() 函數(shù)釋放序列化后的 JSON 數(shù)據(jù)。