1

I have JSON file presented below.

{
  "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" 
      }
  ]
}

I want to get into every "instrument" and get every field into structure. It will make vector of structures.

I tried this way (but isn't not working correctly):

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);
}
CppMonster
  • 1,216
  • 4
  • 18
  • 35

1 Answers1

2

I've got an answer:

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);
}
CppMonster
  • 1,216
  • 4
  • 18
  • 35