我有下面显示的 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"
}
]
}
我想深入了解每个“工具”,并将每个字段都纳入结构。它将生成结构 vector 。
我试过这种方式(但不能正常工作):
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);
}
关于c++ - 使用 Boost.PropertyTree 解析 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22512177/