JSON文件如下:

{"errorCode":0,"reason":"OK","result":{"userId":10086,"name":"中国移动"},"numbers":[110,120,119,911]
}

目录结构如下:

程序运行截图如下:

源码如下:

#include <iostream>
#include <string>
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"using namespace rapidjson;
using namespace std;string readfile(const char *filename){FILE *fp = fopen(filename, "rb");if(!fp){printf("open failed! file: %s", filename);return "";}char *buf = new char[1024*16];int n = fread(buf, 1, 1024*16, fp);fclose(fp);string result;if(n>=0){result.append(buf, 0, n);}delete []buf;return result;
}int parseJSON(const char *jsonstr){Document d;if(d.Parse(jsonstr).HasParseError()){printf("parse error!\n");return -1;}if(!d.IsObject()){printf("should be an object!\n");return -1;}if(d.HasMember("errorCode")){Value &m = d["errorCode"];int v = m.GetInt();printf("errorCode: %d\n", v);}printf("show numbers: \n");if(d.HasMember("numbers")){Value &m = d["numbers"];if(m.IsArray()){for(int i = 0; i < m.Size(); i++){Value &e = m[i];int n = e.GetInt();printf("%d,", n);}}}return 0;
}int parseJSON2(const char *jsonstr){Document d;if(d.Parse(jsonstr).HasParseError()){throw string("parse error!\n");}if(!d.IsObject()){throw string("should be an object!\n");}if(!d.HasMember("errorCode")){throw string("'errorCode' no found!");}Value &m = d["errorCode"];int v = m.GetInt();printf("errorCode: %d\n", v);printf("show numbers:\n");if(d.HasMember("numbers")){Value &m = d["numbers"];if(m.IsArray()){for(int i = 0; i < m.Size(); i++){Value &e = m[i];int n = e.GetInt();printf("%d", n);}}}return 0;
}int main(){string jsonstr = readfile("example.json");//parseJSON(jsonstr.c_str());try{parseJSON2(jsonstr.c_str());}catch(string e){printf("error: %s \n", e.c_str());}getchar();return 0;
}

C++学习笔记-利用rapidJSON读取JSON数据相关推荐

  1. C++学习笔记-利用rapidJSON生成JSON数据

    RapidJSON is a header-only C++ library 在json.org中下载rapidjson 无需加dll和lib,只要加上头文件即可! 结构图如下: 源码如下: #inc ...

  2. python读单行文本求平均值_利用Python读取json数据并求数据平均值

    要做的事情:一共十二个月的json数据(即12个json文件),json数据的一个单元如下所示.读取这些数据,并求取各个(100多个)城市年.季度平均值. { "time_point&quo ...

  3. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记--使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  4. powershell 遍历json_如何从Powershell脚本读取JSON数据并遍历它

    我开始学习Powershell,我正在尝试读取JSON文件.如何从Powershell脚本读取JSON数据并遍历它 这里是我的JSON文件(名为"versions.json"): ...

  5. ROS学习笔记十一:ROS中数据的记录与重放

    ROS学习笔记十一:ROS中数据的记录与重放 本节主要介绍如何记录一个正在运行的ROS系统中的数据,然后在一个运行的系统中根据记录文件重新产生和记录时类似的运动情况.本例子还是以小海龟例程为例. 记录 ...

  6. 数据结构与算法学习笔记之 提高读取性能的链表(上)

    数据结构与算法学习笔记之 提高读取性能的链表(上) 前言 链表(Linked list)比数组稍微复杂一点,在我们生活中用到最常见的应该是缓存,它是一种提高数据读取性能的技术,常见的如cpu缓存,浏览 ...

  7. python json 转csv_利用python将json数据转换为csv格式的方法

    假设.json文件中存储的数据为: {"type": "Point", "link": "http://www.dianping. ...

  8. 面向对象的编程思想写单片机程序——(3)学习笔记 之 程序分层、数据产生流程

    系列文章目录 面向对象的编程思想写单片机程序--(1)学习笔记 之 程序设计 面向对象的编程思想写单片机程序--(2)学习笔记 之 怎么抽象出结构体 面向对象的编程思想写单片机程序--(3)学习笔记 ...

  9. [torchtext]如何利用torchtext读取json文件并生成batch

    如何利用torchtext读取json文件并生成batch 设置Field 使用torchtext.data.Tabulardataset.splits读取文件 构建vocab表 使用torchtex ...

最新文章

  1. 机器人控制算法——Bayes Filter贝叶斯滤波器
  2. 「情报局21」2019 AI 进入新算力时代
  3. vue+antdesign导航菜单动态加载
  4. 材料成型计算机模拟第三版,材料成型计算机模拟考试复习资料.doc
  5. pwntools用docker实现,进行pwn题解答
  6. knn算法实例python_Python实现的knn算法示例
  7. logging日志模块
  8. mysql 岩机_mysql数据库基本应用
  9. 排序算法入门之堆排序
  10. 996是人类社会的倒退
  11. 服务器 IIS主机的Rewrite伪静态组件下载与配置
  12. java 使用poi导出excel柱状图
  13. VS Code Material Icon Theme插件设置自定义文件夹图标关联
  14. 使用代理服务器隐藏电脑上网真实IP地址
  15. 《前端中文入门手册》.pdf
  16. Bluetooth Baseband介绍
  17. ai不同形状的拼版插件_Illustrator(AI)自动拼版脚本插件
  18. Respond 的响应式代码阅读
  19. Sharepoint 2013 页面置顶(Topbar)小插件
  20. Python的P图大法,你值得拥有!

热门文章

  1. MA5683T开局大致开局指导
  2. SSIS 错误代码 DTS_E_OLEDB_EXCEL_NOT_SUPPORTED 没有可用的 OLE DB 访问接口 SSIS 的 64 位版本中不支持 Excel 连接管理器...
  3. 腾讯二面,我被 “赛马” 问题难住了
  4. 堪称暴力美学的可视化大屏是怎么做的?附无代码硬核教程
  5. 从BI到OLAP,数据仓库最终到底能干什么?
  6. 校园招聘最重要的有2点 第一个是不要抱死一家公司
  7. 飞鸽传书绿色版 为什么比较多人用?
  8. 【转载】SQL 模糊查询
  9. 第四节:5种数据类型在TypeScript中的运用
  10. 将一个字段分成3个 php,整理几个方法