Я использую эту библиотеку для json синтаксического анализа https://github.com/nlohmann/json
Мне нужно проанализировать этот json файл
{
"emulators": [
{
"general_info": {
"dev_id": "0123456789",
"model": "my_model",
"model_full": "my_full_model",
"serial_num": "my_serial_num"
}
}
]
}
там, как я пытаясь это сделать
void EmulatorCameraConfigParser::GetEmulatorContextObjFrom(std::string path_to_configuration_json, std::vector<emulator_context::EmulatorContextObj> * out_arr)
{
json jf = Utils::get_json_data(path_to_configuration_json);
if (jf == nullptr)
{
//TODO print - "Configuration json file for TV_CamFromFiles is null";
}
else
{
try
{
for (auto& elem : jf[EMULATORS])
{
emulator_context::EmulatorContextObj tmp;
tmp.m_general_info = &get_general_info(elem[GENERAL_INFO]);
out_arr->push_back(tmp);
}
}
catch (std::exception& ex)
{
//TODO print error
std::string errMsg = "Exeption during parsing configuration json file for TV_CamFromFiles :: ";
errMsg += ex.what();
}
}
}
emulator_context::GeneralInfo EmulatorCameraConfigParser::get_general_info(const json& json)
{
emulator_context::GeneralInfo generalInfo;
try
{
if (json != nullptr)
{
generalInfo.m_dev_id = json.at(DEV_ID).get<std::string>();
generalInfo.m_serial_num = json.at(SERIAL_NUM).get<int>();
}
}
catch (std::exception& ex)
{
//TODO print this error
std::string errMsg = "Exeption during parsing configuration json file for TV_CamFromFiles :: ";
errMsg += ex.what();
}
return generalInfo;
}
Но в результате я ничего не получаю, поэтому я почти уверен, что проблема здесь tmp.m_general_info = &get_general_info(elem[GENERAL_INFO]);
Я думаю, что для того, чтобы получить блок general_info
Мне нужно использовать другой способ, но какой?