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.pswp.cn/news/529738.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529738.shtml
英文地址,請注明出處:http://en.pswp.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;有很多解決…