上篇博文里我通过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

打赏

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

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

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

    因为工作需要,需要对一段嵌套的json进行解析.其中我使用的开发语言是C++. 由于rapidjson的解析效率高效,所以今天研究了下RapidJson,下面是一段我用RapidJson解析的一段具有 ...

  2. python用psf函数_Python 嵌套函数(高级用法)

    Python 嵌套函数(高级用法) 一.嵌套函数(高级用法) 1.嵌套函数 函数的嵌套调用是在"函数调用中再调用其他函数".也就是说:函数嵌套允许在一个函数中调用另外一个函数.如下 ...

  3. iframe标签中写html代码,Iframe嵌套HTML网页的用法?

    iframe嵌入网页的用法 iframe并不是很常用的,在标准的网页中非常少用.但是有朋友经常问到,下面我简单地介绍一下它的用法,你只要熟练掌握这些参数足矣. 也应该是框架的一种形式,它与不 ...

  4. php的内置函数strrpos_PHP函数用法详解【初始化、嵌套、内置函数等】

    本文实例讲述了PHP函数用法.分享给大家供大家参考,具体如下: 初始函数 函数:封装一段用于完成特定功能的代码. 通俗理解函数:可以完成魔鬼工作的代码块,就像积木一样,可以反复使用,在使用的时候,拿来 ...

  5. for循环嵌套的两种用法

    主要有两种类型的for循环嵌套,下面来介绍这两种类型循环嵌套的用法以及事例. 一:内外循环独立进行 #include<stdio.h> void main(){int i,j;char a ...

  6. phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...

    精品推荐 国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布! Docker快速手上视频教程(无废话版)[免费] 作者:E-iceblue https://www.cnblo ...

  7. C# linq创建嵌套组

    以下示例演示如何在 LINQ 查询表达式中创建嵌套组. 首先根据学生年级创建每个组,然后根据每个人的姓名进一步细分为小组. public void QueryNestedGroups() {var q ...

  8. c# 获取word表格中的内容_Java 在Word中创建嵌套表格

    嵌套表格,即在一个大的表格单元格中再嵌进去一个或几个小的表格,使表格内容布局合理.本文将通过java程序来演示如何在Word中创建嵌套表格. 使用工具:Free Spire.Doc for Java ...

  9. 如何安全地创建嵌套目录?

    检查文件目录是否存在的最优雅方法是什么?如果不存在,则使用Python创建目录? 这是我尝试过的: import osfile_path = "/my/directory/filename. ...

最新文章

  1. centos 磁盘扩容,新建lv
  2. 查询删除的外向交货单
  3. python tkinter entry默认值_Python Tkinter Entry和Text的添加与使用详解
  4. swagger配置分组
  5. 【struts2】struts2中的Action详解
  6. 数据结构与算法 | 顺序表
  7. NLPIR RuntimeError: NLPIR function 'NLPIR_Init' failed 解决方案
  8. 京东发布虎年春晚互动攻略 春晚联名款金碗套装首次曝光
  9. WindowsAPI-------获取系统的相关信息
  10. Echarts 曲线数少于图例数解决方法
  11. 物联网技术周报第 109 期: 从设计理念解读实时操作系统 RT-Thread
  12. matlab利用geotiffread读取tif文件报错:‘错误使用 tifflib, 无法打开 TIFF 文件’
  13. STM32开发小结--使用STM32F4串口的空闲中断模式+DMA接收不定长数据帧
  14. [填坑]ubuntu16.04安装腾达U12无线网卡驱动
  15. echarts柱状图渐变色
  16. ReadyBoost--Robbie 的基准测试
  17. ajax的三种传参方式
  18. Windows安装证书
  19. H3C SecPath F100 系列防火墙基本配置
  20. SCAU 8609 哈夫曼树

热门文章

  1. IT公司老板落水,各部门员工怎么救??
  2. redis 可视化工具_自荐一个有情怀的跨平台Redis可视化客户端工具——RedisViewer...
  3. shell 提取sql 的字段名表名_Mysql 常用SQL语句集锦(仅学习)
  4. python冒泡排序实验报告_python中的冒泡排序
  5. fetch() php,PHP:使用fetch()发送数据
  6. fullcalendar 显示的时间间隔只有四十五分钟_NHR系列智能显示控制仪表RS485通信中应用...
  7. 三类计算机语言及特点,计算机语言分为哪三类,计算机语言有哪些
  8. Linux Shell脚本专栏_一键查看服务器的利用率_04
  9. java.sql.SQLSyntaxErrorException: ORA-00923: 未找到要求的 FROM 关键字
  10. mysql和mysqldump出现command not found 问题解决