rapidjson 嵌套json_[整理][RapidJson用法2]C++之RapidJson创建嵌套数组json | 勤奋的小青蛙...

上篇博文里我通过RapidJson解析了嵌套的json文本,那么本文章是RapidJson创建嵌套数组Json文本。

代码:

#include "rapidjson/document.h"

#include "rapidjson/writer.h"

#include "rapidjson/stringbuffer.h"

#include

using namespace rapidjson;

int main() {

// 1. Parse a JSON string into DOM.

const char* json ="{\"Info\":[{\"lots\":10,\"order_algorithm\":\"01\",\"buy_close\":9000,\"spread_shift\":0,\"position_b_sell\":0,\"position_a_buy_today\":0,\"position_a_buy_yesterday\":0,\"sell_open\":-9000,\"list_instrument_id\":[\"rb1705\",\"rb1701\"],\"position_b_buy_today\":0,\"buy_open\":-9000,\"position_a_sell_yesterday\":0,\"strategy_id\":\"02\",\"position_b_buy\":0,\"a_wait_price_tick\":1,\"trade_model\":\"boll_reversion\",\"b_wait_price_tick\":0,\"sell_close\":9000,\"only_close\":0,\"order_action_limit\":400,\"is_active\":1,\"lots_batch\":1,\"position_a_sell\":0,\"position_b_buy_yesterday\":0,\"user_id\":\"063802\",\"position_a_buy\":0,\"trader_id\":\"1601\",\"position_a_sell_today\":0,\"stop_loss\":0,\"position_b_sell_today\":0,\"position_b_sell_yesterday\":0,\"on_off\":0},{\"lots\":20,\"order_algorithm\":\"02\",\"buy_close\":9000,\"spread_shift\":0,\"position_b_sell\":0,\"position_a_buy_today\":0,\"position_a_buy_yesterday\":0,\"sell_open\":-9000,\"list_instrument_id\":[\"ni1705\",\"ni1701\"],\"position_b_buy_today\":0,\"buy_open\":-9000,\"position_a_sell_yesterday\":0,\"strategy_id\":\"01\",\"position_b_buy\":0,\"a_wait_price_tick\":1,\"trade_model\":\"boll_reversion\",\"b_wait_price_tick\":0,\"sell_close\":9000,\"only_close\":0,\"order_action_limit\":400,\"is_active\":1,\"lots_batch\":1,\"position_a_sell\":0,\"position_b_buy_yesterday\":0,\"user_id\":\"063802\",\"position_a_buy\":0,\"trader_id\":\"1601\",\"position_a_sell_today\":0,\"stop_loss\":0,\"position_b_sell_today\":0,\"position_b_sell_yesterday\":0,\"on_off\":0}],\"MsgSendFlag\":0,\"MsgErrorReason\":\"IDorpassworderror\",\"MsgRef\":1,\"MsgType\":3,\"MsgResult\":0}";

//std::cout << json << std::endl;

//std::cout << "\n" << std::endl;

std::cout << "|==================|" << std::endl;

std::cout << "||rapidjson output||" << std::endl;

std::cout << "|==================|" << std::endl;

Document doc;

doc.SetObject();

rapidjson::Document::AllocatorType& allocator = doc.GetAllocator();

doc.AddMember("MsgSendFlag", 1, allocator);

doc.AddMember("MsgErrorReason", "IDorpassworderror", allocator);

doc.AddMember("MsgRef", 1, allocator);

rapidjson::Value info_array(rapidjson::kArrayType);

for (int i = 0; i < 2; i++) {

rapidjson::Value info_object(rapidjson::kObjectType);

info_object.SetObject();

info_object.AddMember("lots", 10 + i, allocator);

info_object.AddMember("order_algorithm", "01", allocator);

rapidjson::Value instrument_array(rapidjson::kArrayType);

for (int j = 0; j < 2; j++) {

rapidjson::Value instrument_object(rapidjson::kObjectType);

instrument_object.SetObject();

instrument_object.SetString("cu1701");

instrument_array.PushBack(instrument_object, allocator);

}

info_object.AddMember("list_instrument_id", instrument_array, allocator);

info_array.PushBack(info_object, allocator);

}

doc.AddMember("Info", info_array, allocator);

// 3. Stringify the DOM

StringBuffer buffer;

Writer writer(buffer);

doc.Accept(writer);

std::cout << buffer.GetString() << std::endl;

return 0;

}

运行效果所创建的JSON文本为:

{

"MsgSendFlag": 1,

"MsgErrorReason": "IDorpassworderror",

"MsgRef": 1,

"Info": [

{

"lots": 10,

"order_algorithm": "01",

"list_instrument_id": [

"cu1701",

"cu1701"

]

},

{

"lots": 11,

"order_algorithm": "01",

"list_instrument_id": [

"cu1701",

"cu1701"

]

}

]

}

其JSON格式化视图如下:

文章的脚注信息由WordPress的wp-posturl插件自动生成

|2|left

打赏

微信扫一扫,打赏作者吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529738.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

绝地求生测试服画面优化软件,绝地求生正式服设置详解 教你调校最完美的画质...

在绝地求生新版本正式上线之后&#xff0c;蓝洞对于绝地求生的两张地图都做了比较大的优化&#xff0c;令低配玩家的游戏帧数都有了比较大的提升&#xff0c;而此前普遍反映的掉帧问题也得到了不小的改善。不过&#xff0c;由于游戏自身的原因(场景较大&#xff0c;玩家较多&am…

python自动备份数据库_Python Mysql自动备份脚本

测试系统环境 Windows 2003 python 2.5.1 mysql 5.0.1应该只适用于Win&#xff0c;因为调用了CMD。增量备份&#xff0c;因为自用&#xff0c;数据库不大。回头有了需求加上自检测&#xff0c;5天前的自动删除。#!/usr/bin/env python#encodingutf-8#Mysql auto backup#Aut…

小学计算机画线反思,小学《我们身边的线条》教学反思

小学《我们身边的线条》教学反思《我们身边的线条》教学反思线条课从第一册开始&#xff0c;一直贯穿整个小学美术课程&#xff0c;由简到繁&#xff0c;由易到难。《我们身边的线条》一课&#xff0c;就是要引导学生发现生活中到处都有的线条。线条是绘画造型的基本元素&#…

.net 实时通信_【WebSocket】实时多人答题对战游戏

本文公众号来源&#xff1a;后端技术漫谈 作者&#xff1a;蛮三刀把刀前言前两章教程&#xff0c;我们使用WebSocket的基础特性打造了一个小小聊天室&#xff0c;并在第二章对其进行了集群化改造。系列教程回顾&#xff1a;手把手搭建WebSocket多人在线聊天室【多人聊天室】Web…

磊科路由虚拟服务器设置,磊科路由器虚拟转发服务设置的方法

磊科路由器虚拟转发服务设置的方法磊科路由的虚拟 MAC 地址的分配功能实现了不同主机将流量发送给备份组中不同的路由器&#xff0c;但为了使备份组中的路由器能够转发主机发送的流量&#xff0c;还需要在路由器上创建虚拟转发器&#xff0c;每个虚拟转发器都对应备份组的一个虚…

css动画执行保持forwards,css3动画如何在动作结束时保持该状态不变

animation-fill-mode : none | forwards | backwards | both;none&#xff1a;不改变默认行为。forwards &#xff1a;当动画完成后&#xff0c;保持最后一个属性值(在最后一个关键帧中定义)。backwards&#xff1a;在 animation-delay 所指定的一段时间内&#xff0c;在动画显…

anylogic中如何构建复杂网络_如何对复杂网络建模所需要的数据进行预处理

上一篇文章介绍了如何构建Space L实体网络的模型&#xff0c;这一篇是对上一篇文章的一个补充优化。以下部分摘自上一篇文章&#xff1a;邢八宝&#xff1a;如何建立复杂网络实体网络的Space L模型&#xff1f;​zhuanlan.zhihu.com地铁网络&#xff0c;一般都有三四百个节点&a…

ajax需要引用什么js文件吗,如何在ajax调用中包含js文件?

嘿&#xff0c;我找到了添加它的方法.... :)注意 - 这是一个同步过程&#xff0c;所以你不必担心脚本是否加载....脚本将始终加载实例你调用该函数&#xff0c;你可以立即开始使用加载的脚本..让我们使用这两个功能1)第一个是用于检索值的ajax函数async应为true以同步发送请求/…

门户网站服务器迁移,云服务器怎么迁移网站

1、寻找新的服务器产品在原云服务器暂时不关闭的前提下&#xff0c; 寻找新的服务器。寻找到新的服务器空间之后&#xff0c;将原主机空间的网站进行备份&#xff0c;并下载备份数据。2、配置新服务器环境一般找到新服务器空间之后&#xff0c;需要根据原网站程序对新服务器进行…

c从oracle到mysql移植_数据库从oracle移植到mysql时需要进行的修改

分页方式不同&#xff0c;oracle使用rownum&#xff0c;mysql使用limit使用hibernate的QBC不用修改&#xff0c;但hql和sql都应该用统一方法修改mysql子查询必须带别名select * from (select * from city where city_id 1) t 别名(此处是t)必须加存在差异的函数a)日期转字符串…

nodejs mysql access denied_Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’...

前言最近在工作中遇到问题&#xff0c;问题如下&#xff1a;Unhandled rejection SequelizeAccessDeniedError: Access denied for user lupenglocalhost (using password: YES)这是Node在使用Sequlize连接Mysql数据时报的错&#xff0c;关键看冒号后面的错误&#xff1a;访问拒…

消息存储服务器吗,消息服务器 消息存储

消息服务器 消息存储 内容精选换一换华为云分布式消息服务帮助中心&#xff0c;为用户提供产品介绍、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档&#xff0c;帮助您快速上手使用分布式消息服务。消息服务器 消息存储 相关内容联邦学习部署服务的FL-Client接口…

mysql 跨实例复制数据_社区投稿 | MySQL 跨实例 copy 大表解决方案

作者简介任坤&#xff0c;现居珠海&#xff0c;先后担任专职 Oracle 和 MySQL DBA&#xff0c;现在主要负责 MySQL、mongoDB 和 Redis 维护工作。一、背景某天晚上 20:00 左右开发人员找到我&#xff0c;要求把 pre-prod 环境上的某张表导入到 prod &#xff0c;第二天早上 07:…

ajax跨域只能是get,jsonp跨域请求只能get变相解决方案

1.java设置返回表头&#xff1a;response.setHeader("Access-Control-Allow-Origin","*");response.setHeader("Access-Control-Allow-Methods","POST");response.setHeader("Access-Control-Max-Age","1000");2.…

云服务器虚拟主机区别,云服务器和虚拟主机的区别

云空间服务是云计算服务的重要组成部分,是面向各类互联网用户提供综合业务能力的服务平台。平台整合了传统意义上的互联网应用三大核心要素:计算、存储、网络,面向用户提供公用化的互联网基础设施服务。采用操作系统虚拟化技术,虚拟化效率高,虚拟化License费用低,能共享操作系统…

php连接mysql并操作系统_PHP 连接并操作MySQL的一个实例

/*** MyClass 抽象类,用于执行查询语句**/class MyClass{const HOST 192.168.73.110:3306;const USER root;const PASSWORD root;const DB kmdbcenter;static $Instance false;private $QueryResult False;private final function __construct(){if(!mysql_connect(MyCla…

服务器上次文件命令,服务器上次文件命令

服务器上次文件命令 内容精选换一换当创建文件系统后&#xff0c;您需要使用云服务器来挂载该文件系统&#xff0c;以实现多个云服务器共享使用文件系统的目的。CIFS类型的文件系统不支持使用Linux操作系统的云服务器进行挂载。同一SFS容量型文件系统不能同时支持NFS协议和CIFS…

win7装mysql一直未响应6_win7重装mysql最后一步无响应解决方法

重新安装MySQL出示未响应&#xff0c;一般显示在安装MySQL程序最后一步的2&#xff0c;3项就不动了。这种情况一般是你以前安装过MySQL数据库服务项被占用了。解决方法&#xff1a;一种方法&#xff1a;你可以安装MySQL的时候在这一步时它默认的服务名是“MySQL” 只需要把这个…

spd不能修改服务器内存条的原因,修改内存SPD 解决蓝屏问题

修改内存SPD 解决蓝屏问题互联网 发布时间&#xff1a;2009-04-21 01:18:13 作者&#xff1a;佚名 我要评论问&#xff1a;一台电脑的内存是HY 256MB DDRII 533&#xff0c;最近又购买了一条HY 256MB DDRII 533内存&#xff0c;与原有内存组成双通道。使用时偶尔会出现蓝…

服务器批量修改代码,利用Redis实现多服务器批量操作

工作中遇到一个项目需要在多个平台编译打包&#xff0c;每次都需要登录到不同的服务器同步代码&#xff0c;编译&#xff0c;打包&#xff0c;上传&#xff0c;非常麻烦&#xff0c;于是想为何不能一次操作&#xff0c;多台服务器自动执行呢。网上找了下&#xff0c;有很多解决…