C++: чтение объекта json из файла с помощью nlohmann json
Я использую библиотеку json nlohmann для работы с объектами json на c++. В конечном счете, я хотел бы прочитать объект json из файла, например, такой простой объект.
{
"happy": true,
"pi": 3.141
}
Я не совсем уверен, как подойти к этому. At https://github.com/nlohmann несколько способов десериализации из строкового литерала, однако не кажется тривиальным расширять это для чтения в файле. У кого-нибудь есть опыт в этом?
2 ответов
обновление 2017-07-03
С версия 3.0, json::json(std::ifstream&)
- Это исключено. Следует использовать, как указал Маркус:--10-->
std::ifstream ifs("test.json");
json j = json::parse(ifs);
обновление
С версия 2.0, можно написать:
std::ifstream ifs("test.json");
json j(ifs);
оригинальный ответ
использовать json::operator>>(std::istream&)
:
json j;
std::ifstream ifs("test.json");
ifs >> j;
конструктор json j(ifs)
является устаревшим и будет удален в версии 3.0.0. Начиная с версии 2.0.3 вы должны написать:
std::ifstream ifs("test.json");
json j = json::parse(ifs);