1、JSON全称JavaScript Object Notation。是一种轻量级的数据交换格式。其独立于语言,并且更容易理解。
数据的存储形式分为两种:Key:Value的集合(常被理解为对象)以及Value的序列(常被理解为数组)形式。
Key:Value的集合:一般以“{”开始,以“}”结束,每一各Key后加“:”,每一对Key:Value之间以“,”分隔开。
如:{“name”:”LiMin”,“Age”:”12”,“Address”:”Xuhui DistrictShanghai”}
Value的序列:一般以“[”开始,以“]”结束,每一个Value之间也是以“[“abc”,123,true,false,null]
与XML相比优点:1)更短;2)格式简单;3)读取简单;
2、JsonCPP常用的类
JsonCPP是C++格式的JSON类库。常用的类包括:
1)、Json::Value
JsonCPP中的核心类,用来存储各种各样的类型数据,e.g.int,string,char,bool等等。
2)、Json::Reader
Reader类用来将字符或者流解析到C++支持的数据类型中。主要方法为parse()方法。
3)、Json::Writer
Writer类为一虚类,需要子类来实现编码的功能。
4)、Json::FastWriter
FastWriter类为Writer类的子类,将C++的类型编码为JSON所支持的格式。
5)、Json::StyledWriter
StyledWriter类也为Writer类的子类,功能与FastWriter一样。与FastWriter所不同的是FastWriter输出的是不带格式的JSON,而StyledWriter输出的是带格式的JSON。
从图中看出,应该是style输出的形式比较美观些。
JSON API参考网址:http://jsoncpp.sourceforge.net/index.html