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

c json字符串序列化與反序列化

黃文隆2年前8瀏覽0評論

JSON是一種輕量級的數據交換格式,非常適合在客戶端和服務器之間傳輸數據。C語言具有良好的性能和廣泛的應用范圍,因此在C語言中操作JSON字符串是非常必要的。

對于C語言,通常有兩種方式來處理JSON:字符串序列化和反序列化。

JSON字符串序列化

JSON字符串序列化指的是將C語言中的數據結構轉換成JSON字符串的過程。在C語言中,通常需要使用第三方庫來操作JSON字符串,這里我們使用CJSON庫。下面是一個例子:

#include <stdio.h>
#include <cJSON.h>
int main() {
cJSON *root = cJSON_CreateObject();  // 創建JSON對象
cJSON_AddStringToObject(root, "name", "Jack");  // 向JSON對象中添加屬性
cJSON_AddNumberToObject(root, "age", 21);
cJSON_AddItemToObject(root, "hobby", cJSON_CreateStringArray((const char *[]){"basketball", "football", NULL}, 2));  //添加數組
char *json_str = cJSON_Print(root);  // 將JSON對象轉換成JSON字符串
printf("%s\n", json_str);  
free(json_str);
cJSON_Delete(root);  // 釋放內存
return 0;
}

JSON字符串反序列化

JSON字符串反序列化指的是將JSON字符串轉換成C語言中的數據結構的過程。在C語言中,同樣需要使用第三方庫來操作JSON字符串,這里我們還是使用CJSON庫。下面是一個例子:

#include <stdio.h>
#include <cJSON.h>
int main() {
char *json_str = "{\"name\":\"Jack\",\"age\":21,\"hobby\":[\"basketball\",\"football\"]}";  // 定義JSON字符串
cJSON *root = cJSON_Parse(json_str);  // 將JSON字符串轉換成JSON對象
char *name = cJSON_GetObjectItem(root, "name")->valuestring;  // 從JSON對象中獲取屬性值
int age = cJSON_GetObjectItem(root, "age")->valueint;
cJSON *hobby_arr = cJSON_GetObjectItem(root, "hobby");
for(int i=0; i<cJSON_GetArraySize(hobby_arr); i++) {
char *hobby = cJSON_GetArrayItem(hobby_arr, i)->valuestring;  // 從JSON對象中獲取數組元素值
printf("%s\n", hobby);
}
cJSON_Delete(root);  // 釋放內存
return 0;
}

以上示例僅為演示和說明,實際應用中還應注意內存管理和異常處理等問題。