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

c 序列化json集合

錢衛國2年前10瀏覽0評論

在 C 語言中,序列化 JSON 集合是很常見的操作。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,通常用于面向 Web 應用的數據傳輸。C 語言是一種底層語言,但是也可以通過使用第三方庫來處理 JSON 數據。

C 庫中最流行的 JSON 序列化庫是 cJSON。該庫是一個輕量級的庫,可以在任何支持 ANSI C 的平臺上運行,并支持 UTF-8 編碼的 JSON 格式。

#include#include#include "cJSON.h"
int main() {
// 創建一個 JSON 對象
cJSON *root = cJSON_CreateObject();
// 添加屬性
cJSON_AddItemToObject(root, "name", cJSON_CreateString("Tom"));
cJSON_AddItemToObject(root, "age", cJSON_CreateNumber(20));
cJSON_AddItemToObject(root, "is_student", cJSON_CreateTrue());
// 序列化 JSON 對象
char *json_string = cJSON_Print(root);
printf("JSON string: %s\n", json_string);
// 釋放內存
free(json_string);
cJSON_Delete(root);
return 0;
}

上面的代碼演示了如何使用 cJSON 序列化一個 JSON 對象。首先創建一個 cJSON 對象,然后添加屬性,最后調用 cJSON_Print 函數將 JSON 對象序列化為字符串。需要注意的是,在使用完 cJSON 對象后,需要手動釋放內存。

CJSON同時也支持解析JSON數據,使用方式如下:

#include#include#include "cJSON.h"
int main() {
char *json_string = "{\"name\":\"Tom\",\"age\":20,\"is_student\":true}";
// 解析 JSON 字符串
cJSON *root = cJSON_Parse(json_string);
// 獲取屬性值
cJSON *name_item = cJSON_GetObjectItem(root, "name");
cJSON *age_item = cJSON_GetObjectItem(root, "age");
cJSON *is_student_item = cJSON_GetObjectItem(root, "is_student");
printf("name: %s\n", name_item->valuestring);
printf("age: %d\n", age_item->valueint);
printf("is_student: %d\n", is_student_item->valueint);
// 釋放內存
cJSON_Delete(root);
return 0;
}

上面的代碼演示了如何使用 cJSON 解析 JSON 字符串,并從中獲取屬性值。首先將 JSON 字符串傳入 cJSON_Parse 函數中,該函數將返回一個 cJSON 對象。通過 cJSON_GetObjectItem 函數獲取屬性值,不同類型的屬性值需要使用不同的訪問函數(例如 cJSON_GetObjectItem 中的 cJSON_GetObjectItemString 函數),最后使用 cJSON_Delete 函數釋放 cJSON 對象所占用的內存。