Я сейчас пытаюсь прочитать json файл в объект. Я использую версию nlohmann- json 3.7.3. Я следовал примеру кода в этой документации, который выглядит следующим образом:
// read a JSON file
std::ifstream i("file.json");
json j;
i >> j;
Моя реализация для этого заключалась в том, чтобы иметь простую функцию, которая возвращает объект json, так просто:
nlohmann::json UTSF::readJSONFile(std::string filename)
{
std::ifstream i("file.json");
json j;
i >> j;
return j;
}
Я получаю следующую ошибку no operator ">>" matches these operands operand types are: json >> std::ifstream
Так что я провел некоторое расследование, что этот способ больше не используется в версии 3.7.3. Я также изучил использование json.parse
и не сработал.
Какой самый актуальный способ сделать это для nlohmann-jsonversion 3.7.3? У меня также есть похожие проблемы с записью json в файл
Это минимальный воспроизводимый пример, который я написал, который дает мне ту же ошибку;
#include <iostream>
#include <nlohmann/json.hpp>
#include <fstream>
using json = nlohmann::json;
nlohmann::json readJSONFile(std::string filename)
{
std::ifstream i(filename);
json j;
i >> j;
return j;
}
int main()
{
nlohmann::json x;
x = readJSONFile("file.json");
std::cout << x.dump(4) << std::endl;
}