用Boost.PropertyTree解析JSON数组
Parsing JSON array with Boost.PropertyTree
我有JSON文件如下。
{
"instruments": [
{
"minShift": -1.0, // opcjonalnie - jeśli brak, to taka, jak dla globalnych ustawień
"maxShift": 1.0, // opcjonalnie - jeśli brak, to taka, jak dla globalnych ustawień
"stepShift": 0.01, // opcjonalnie - jeśli brak, to taka, jak dla globalnych ustawień
"instrument_old": "CFH/EURUSD",
"instrument_new": "LMAX/EURUSD"
},
{
"minShift": -1.0, // opcjonalnie - jeśli brak, to taka, jak dla globalnych ustawień
"maxShift": 1.0, // opcjonalnie - jeśli brak, to taka, jak dla globalnych ustawień
"stepShift": 0.01, // opcjonalnie - jeśli brak, to taka, jak dla globalnych ustawień
"instrument_old": "CFH/EURUSD",
"instrument_new": "Saxo/EURUSD"
},
{
"minShift": -1.0, // opcjonalnie - jeśli brak, to taka, jak dla globalnych ustawień
"maxShift": 1.0, // opcjonalnie - jeśli brak, to taka, jak dla globalnych ustawień
"stepShift": 0.01, // opcjonalnie - jeśli brak, to taka, jak dla globalnych ustawień
"instrument_old": "LMAX/XAUUSD",
"instrument_new": "Saxo/XAUUSD"
}
]
}
我想进入每一个"乐器",把每一个领域都纳入结构。它将使结构向量。
我试过这种方式(但不能正常工作):
BOOST_FOREACH( ptree::value_type& node,pt.get_child("instruments") )
{
InstrumentInfo instrumentInfo;
instrumentInfo.shiftInfo.minShift = pt.get<double>("minShift",shiftInfo.minShift);
instrumentInfo.shiftInfo.maxShift = pt.get<double>("maxShift",shiftInfo.maxShift);
instrumentInfo.shiftInfo.stepShift = pt.get<double>("stepShift",shiftInfo.stepShift);
instrumentInfo.instrumentOld = pt.get<string>("instrument_old","");
instrumentInfo.instrumentNew = pt.get<string>("instrument_new","");
instrumentsInfo.push_back(instrumentInfo);
}
我有答案了:
BOOST_FOREACH( ptree::value_type& node,pt.get_child("instruments") )
{
InstrumentInfo instrumentInfo;
instrumentInfo.shiftInfo.minShift = node.second.get<double>("minShift",shiftInfo.minShift);
instrumentInfo.shiftInfo.maxShift = node.second.get<double>("maxShift",shiftInfo.maxShift);
instrumentInfo.shiftInfo.stepShift = node.second.get<double>("stepShift",shiftInfo.stepShift);
instrumentInfo.instrumentOld = node.second.get<string>("instrument_old","");
instrumentInfo.instrumentNew = node.second.get<string>("instrument_new","");
instrumentsInfo.push_back(instrumentInfo);
}
相关文章:
- 使用 jsoncpp 解析 json 数组字符串
- 使用 Qt 解析 JSON 数组
- 在 C++ 中访问 JSON 数组值
- 无法使用 Poco 库正确克隆 JSON 数组C++
- 获取嵌套的 JSON 数组和矩阵C++
- 如何使用基于范围的for循环迭代Rapidjson文档(它本身就是一个JSON数组)
- JSONCPP 只用一个元素写入 JSON 数组
- 如何打印 JSON 数组
- 在C++中使用 RapidJSON 访问 JSON 数组的字段
- 从QT的Web服务中解析未命名的JSON数组
- 使用 boost 读取复杂的 JSON 数组
- 创建 Qstring 的 Json 数组
- 在 qt c++ 中获取 Json 数组中 Qstring 的输出
- 如何使用 QT 创建 JSON 数组
- 如何将JSON数组存储在Arduino程序中
- C 返回函数的函数返回JSON数组通过Nlohmann Json.hpp
- 使用Boost C 创建JSON数组
- 从 JSON 数组获取天气
- 使用JSONCPP创建空的JSON数组
- C++ 将请求发送到 Web 服务器上的 API,然后接收 JSON 数组响应