首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Boost.PropertyTree解析JSON数组

用Boost.PropertyTree解析JSON数组
EN

Stack Overflow用户
提问于 2014-03-19 16:26:22
回答 1查看 1.8K关注 0票数 1

下面显示了JSON文件。

代码语言:javascript
复制
{
  "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" 
      }
  ]
}

我想进入每一个“乐器”,让每一个领域进入结构。它将成为结构的矢量。

我试过这样做(但没有正常工作):

代码语言:javascript
复制
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);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-19 16:46:42

我有一个答案:

代码语言:javascript
复制
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);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22512177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档