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

c json 序列化與反序列化

錢琪琛2年前8瀏覽0評論

在C語言中,經常需要對數據進行序列化和反序列化。而在現代的web應用中,JSON已成為了一種輕便、易用、易讀的數據交換格式。因此,C語言中需要使用JSON格式進行數據的序列化和反序列化。

C語言中常用的JSON庫有CJSON和Jansson。這兩種庫都能夠方便地對JSON數據進行序列化和反序列化,使得C程序能夠方便地與其他語言的程序進行數據交換。

以下是使用CJSON庫進行JSON數據的序列化和反序列化的示例代碼:

// 序列化
cJSON *root;
root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", "John");
cJSON_AddNumberToObject(root, "age", 30);
cJSON_AddBoolToObject(root, "married", true);
char *json_data = cJSON_Print(root);
printf("%s\n", json_data);
free(json_data);
cJSON_Delete(root);
// 反序列化
char *json_string = "{\"name\":\"John\", \"age\":30, \"married\":true}";
cJSON *root = cJSON_Parse(json_string);
if (root == NULL) {
printf("cJSON_Parse error\n");
return -1;
}
cJSON *name = cJSON_GetObjectItem(root, "name");
cJSON *age = cJSON_GetObjectItem(root, "age");
cJSON *married = cJSON_GetObjectItem(root, "married");
printf("name: %s\n", name->valuestring);
printf("age: %d\n", age->valueint);
printf("married: %d\n", married->valueint);
cJSON_Delete(root);

可以看到,使用CJSON庫進行JSON數據的序列化和反序列化非常簡單。首先,使用cJSON_CreateObject()函數創建一個JSON對象,然后使用cJSON_AddStringToObject()函數、cJSON_AddNumberToObject()函數和cJSON_AddBoolToObject()函數向JSON對象中添加鍵值對。

待JSON數據序列化完成后,使用cJSON_Print()函數將JSON數據打印到字符串中。反序列化時,使用cJSON_Parse()函數將JSON字符串解析為JSON對象,然后使用cJSON_GetObjectItem()函數獲取JSON對象中各個鍵對應的值,即可方便地獲取JSON數據。

總的來說,使用CJSON庫進行JSON數據的序列化和反序列化非常方便,能夠讓C程序能夠方便地與其他語言的程序進行數據交換。這種輕量級的JSON數據交換格式也極大地方便了大家的工作。