我有下面提供的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);
}
答案 0 :(得分:2)
我得到了答案:
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);
}