微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/json/289803.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐