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

c json 序列化 反序列化

C JSON序列化和反序列化主要用于將C語(yǔ)言結(jié)構(gòu)體數(shù)據(jù)轉(zhuǎn)化為JSON格式數(shù)據(jù),并且可將JSON格式數(shù)據(jù)轉(zhuǎn)化為C語(yǔ)言結(jié)構(gòu)體數(shù)據(jù),實(shí)現(xiàn)C語(yǔ)言和JSON之間的互相轉(zhuǎn)化。

一般情況下C JSON序列化使用json-c庫(kù),該庫(kù)提供了一些適用于C語(yǔ)言的JSON序列化和反序列化API函數(shù),具有輕量級(jí)、簡(jiǎn)單易用的特點(diǎn),是C語(yǔ)言中JSON序列化和反序列化的首選庫(kù)。

C JSON序列化主要使用json_object_new_XXX()函數(shù)將C語(yǔ)言的類型轉(zhuǎn)化為對(duì)應(yīng)的JSON類型,再使用json_object_set_XXX()函數(shù)添加到j(luò)son_object對(duì)象中。代碼如下:

#include <stdio.h>
#include <json-c/json.h>
int main() {
json_object *jobj = json_object_new_object(); // 創(chuàng)建json_object對(duì)象
json_object *jstring = json_object_new_string("hello, world"); // 創(chuàng)建json string類型對(duì)象
json_object_object_add(jobj, "msg", jstring); // 將json string類型對(duì)象添加到j(luò)son_object對(duì)象中
char *str = json_object_to_json_string(jobj); // 將json_object對(duì)象序列化為JSON格式字符串
printf("%s\n", str); // 輸出結(jié)果:{"msg":"hello, world"}
json_object_put(jobj); // 釋放json_object對(duì)象
}

C JSON反序列化主要使用json_tokener_parse()函數(shù)將JSON格式字符串轉(zhuǎn)化為json_object對(duì)象,然后使用json_object_object_get_XXX()函數(shù)獲取對(duì)應(yīng)的JSON值類型,并將其轉(zhuǎn)化為C語(yǔ)言的類型。代碼如下:

#include <stdio.h>
#include <json-c/json.h>
int main() {
char *str = "{\"msg\":\"hello, world\"}"; // JSON格式字符串
json_object *jobj = json_tokener_parse(str); // 將JSON格式字符串轉(zhuǎn)化為json_object對(duì)象
json_object *jstring = json_object_object_get(jobj, "msg"); // 從json_object對(duì)象中獲取json string類型對(duì)象
const char *msg = json_object_get_string(jstring); // 將json string類型對(duì)象轉(zhuǎn)化為C語(yǔ)言字符串
printf("%s\n", msg); // 輸出結(jié)果:hello, world
json_object_put(jobj); // 釋放json_object對(duì)象
}