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

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...