JSON是一种轻量级的数据交换格式,易于人编写和阅读,同时也易于机器解析和生成。
JSON建构于两种结构:对象(名称/值对的集合)、数组(值的有序列表),其中名称是一个字符串,值的类型包括:字符串、数字、布尔值、对象、数组、null值。
jsoncpp是一个使用C++语言实现的面向对象的json库,提供的接口有3个核心类:Reader、Writer、Value。
Reader类负责从字符串或者输入流中加载JSON文档,并进行解析,生成代表JSON文档的Value对象;Writer类负责将内存中的Value对象转换成JSON文档,输出到文件或者字符串中;Value类的对象代表一个JSON值,既可以代表一个文档,也可以代表文档中一个值。
要创建代表如下JSON文档的Value对象:
{
"Type": "USER_INFO",
"Data":
{
"id": 1,
"name": "spring",
"server":
{
"homeserver": 1001,
"visitserver": 1003
},
"skillids":
[
1,3,5
]
}
}
需要如下代码:
Value Root(objectValue);
Root["Type"]="USER_INFO";
Value Data(objectValue);
Data["id"]=1;
Data["name"]="spring";
Value _server(objectValue);
_server["homeserver"]=1001;
_server["visitserver"]=1003;
Data["server"]=_server;
Value _skillids(objectValue);
_skillids.append(1);
_skillids.append(3);
_skillids.append(5);
Data["skillids"]=_skillids;
Root["Data"]=Data;