相关信息
源码网址 github :
Git remote
优质学习博客
http://www.cnblogs.com/kex1n/archive/2011/12/02/2272328.html
学习笔记
基本设计
数据类 Value
Value 是一个通用的的数据类,一个Json文件的所有数据可以用一棵Value树来表示。
Value 支持以下类型:
enum ValueType {
nullValue = 0, ///< ‘null’ value
intValue, ///< signed integer value
uintValue, ///< unsigned integer value
realValue, ///< double value
stringValue, ///< UTF-8 string value
booleanValue, ///< bool value
arrayValue, ///< array value (ordered list)
objectValue ///< object value (collection of name/value pairs).
}
- 任何一个Value某一个时刻只能是其中的一种类型 。可以使用
isXXX()
测试之。 - 实现方式是传统的union ,内嵌map容器
- 支持迭代器访问。
- 支持
[]
运算符 , 支持get
接口。
Reader
- Reader 负责将Json文本加载进入Value。
- 可以通过Feature类来设置Reader属性。
- CharReaderBuilder产生的 CharReader可以将符合Json格式字符流加载进入Value。
Writer
和Reader不同 ,Writer是个纯虚类, write
接口返回Json格式的字符串, 用户自行写文件或者输出。
- FastWriter 返回字符串
- StreamWriter 写字符流
- StyledXXX