JSON学习一(基础)
支持版本:jsoncpp-src-0.5.0
版本不通可能略有差异,根据具体版本情况而定
1.介绍
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation);轻量级的文本数据交换格式;独立于语言和平台
2.头文件:
jsonCpp所有对象、类名都在namespace json中,使用时要包含json.h以及其下包含的头文件(一共8个头文件)
3.语法规则
1)数据在名称/值对中
2)数据由逗号分隔
3)大括号 {} 保存对象
4)中括号 [] 保存数组,数组可以包含多个对象
5)每一对象最后一数据不写逗号
6)空值:小写null
4.JSON 值可以是:
1)数字(整数或浮点数)
2)字符串(在双引号中)
3)逻辑值(true 或 false)
4)数组(在中括号中)
5)对象(在大括号中)
6)null
5.jsonCpp包含的class
jsonCpp主要包含三种类型的class:value、reader、write。
1)Json::Value 用来表示Json中的任何一种value抽象数据类型
2)Json::Reader 可以通过对Json源目标进行解析,得到一个解析好了的Json::Value,通常字符串或者文件输入流可以作为源目标。
3)Json::Writer 和 Json::Reader相反,是把Json::Value对象写到对象(字符串或者文件输入流)中;Json::Writer 为纯虚类,并不能直接使用。需要使用其子类:Json::FastWriter(快,最常用)、Json::StyledWriter、Json::StyledStreamWriter;
6.函数解读
1. ofstream是从内存到硬盘(将内存数据写入磁盘),ifstream是从硬盘到内存(将磁盘数据读到内存),其实所谓的流缓冲就是内存空间
1)ifstream成员函数:ifstream::open
void open(const char* filename,int mode)
函数参数:filename 要打开文件的文件名;mode 打开文件的方式:格式ios::binary
2)ofsream成员函数:ofstream::open
void open(const char* filename)
函数参数:filename 要打开文件的文件名;
3) reader成员函数:reader.parse
ifstream is;
Json::Value root;
形式:reader.parse(is, root)
reader将Json字符串解析到root,root将包含Json里所有子元素
4)value成员函数(常用)
形式:Json::Value root;
1.root.append(new_item); //插入数组成员
2.root[device0].asInt(); //获取整形数据
3.root[device0].asString()/asBool()/asDouble(); //获取字符串/布尔类型/浮点数类型数据
4.root[device0].isString()/isBool()/isDouble()/isNull(); //判断数据是否是字符串/布尔类型/浮点数类型/空数据
5.root.toStyledString() //输出信息
1.不使用open指定输出位置,默认输出到控制台;
2.通过open指定输出位置,再执行此函数将数据输出到指定的输出位置
输出:(为减少代码量,3和4未罗列)
JSON学习一(基础)相关推荐
- Spring Boot学习笔记-基础(2)
Spring Boot学习笔记-基础(2) Spring Boot 优点: – 快速创建独立运行的Spring项目以及与主流框架集成 – 使用嵌入式的Servlet容器,应用无需打成WAR包 – st ...
- MySQL学习笔记-基础篇1
MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...
- 爬虫学习:基础爬虫案例实战
爬虫学习:基础爬虫案例实战 文章目录 爬虫学习:基础爬虫案例实战 一.前言 二.案例实战 任务一:爬取列表页 任务二:爬取详细页 任务三:保存爬取数据 任务四:利用多进程提高效率 三.补充一点 四.最 ...
- Redis学习笔记①基础篇_Redis快速入门
若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...
- Python零基础速成班-第8讲-Python文件操作File IO、高级文件处理模块shutil、CSV、JSON、多线程基础
Python零基础速成班-第8讲-Python文件操作File I&O.高级文件处理模块shutil.CSV.JSON.多线程基础 学习目标 文件操作File I/O 高级文件处理模块shut ...
- MySQL学习笔记-基础篇2
MySQL学习笔记-基础篇2 目录 MySQL学习笔记-基础篇2 8.子查询 8.1 需求分析与问题解决 8.1.1 实际问题 8.1.2 子查询的基本使用 8.1.3 子查询的分类 8.2 单行子查 ...
- 《繁凡的深度学习笔记》前言、目录大纲 一文让你完全弄懂深度学习所有基础(DL笔记整理系列)
<繁凡的深度学习笔记>前言.目录大纲 (DL笔记整理系列) 一文弄懂深度学习所有基础 ! 3043331995@qq.com https://fanfansann.blog.csdn.ne ...
- 孙立岩 python-basic: 用于学习python基础的课件(一二三四)
python-basic: 用于学习python基础的课件 介绍 此部分讲解Python的基础,点击目录学习对应的小节: 01-简介,概述一下python: 02-环境搭建,如何在大家自己的windo ...
- 周志华教授专著《集成学习:基础与算法》上市,破解AI实践难题
[ 摘要 ]<集成学习:基础与算法>上市一周,斩获京东IT新书销量榜第一名桂冠,并拿下京东IT图书销量总榜第二名的惊人成绩. 文中有数据派独家福利哦 本书共读活动已正式开启,文末加入读者交 ...
- Expression Blend学习动画基础
原文:Expression Blend学习动画基础 什么是动画(Animation)? 动画就是时间+换面的组合,画面跟着时间变化.最常见的是flash的动画,还有GIF动态图片. 动画的主要元素 时 ...
最新文章
- CUDA Samples: approximate image reverse
- squid 的配置详解 (转)--SeriesI 收藏
- 用户太多太杂,搞不懂怎么办?“分门别类”将拯救你
- @ModelAttribute运用详解
- Change default duration for Fiori Toast
- 利用 Azure Functions 实现无服务器体系结构
- 「BZOJ1485」[HNOI2009] 有趣的数列 (卡特兰数列)
- WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
- NTP组播模式配置和日志信息发送到Linux日志主机的配置
- 非华为电脑配对华为手机(RMB+5899¥)
- 判断一个数是偶数还是素数 做相应处理并排序输出
- 详解解决CAS机制中ABA问题的AtomicStampedReference
- 总结了200道经典的机器学习面试题(附参考答案)
- webpack5 入门学习笔记(四)性能优化
- SSM | Spring
- 计算机根号的3次方怎么,excle 开几次方|excel中咋开3次根号啊
- autocad不能画图_记住这10个cad画图技巧,轻松精通cad
- 各种Lisp系语言大检阅
- 个人申请微信支付接口教程(免签约支付)
- 学习 Go 语言 0x04:《Go 语言之旅》中切片的练习题代码