Jsoncpp 学习笔记

相关信息

源码网址 github :

https://github.com/open-source-parsers/jsoncpp

Git remote

https://github.com/open-source-parsers/jsoncpp.git

优质学习博客

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

相关文章

文章浏览阅读2.4k次。最近要优化cesium里的热力图效果,浏览...
文章浏览阅读1.2w次,点赞3次,收藏19次。在 Python中读取 j...
文章浏览阅读1.4k次。首字母缩略词 API 代表应用程序编程接口...
文章浏览阅读802次,点赞10次,收藏10次。解决一个JSON反序列...
文章浏览阅读882次。Unity Json和Xml的序列化和反序列化_uni...