我目前正在尝试将 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;
}