Jsoncpp 学习笔记

前端之家收集整理的这篇文章主要介绍了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

猜你在找的Json相关文章