1
我有JSON文件如下。用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);
}