我正在使用nlohmann的json库来处理c ++中的json对象。最后,我想从文件中读取json对象,例如像这样的简单对象。
{
"happy": true,
"pi": 3.141
}
我不太清楚如何处理这个问题。在https://github.com/nlohmann,有几种方法可以从字符串文字中反序列化,但是将它扩展为读入文件似乎并不容易。有任何人对此有经验吗?
答案 0 :(得分:21)
自 3.0版以来,不推荐使用json::json(std::ifstream&)
。一个人应该使用json::parse()
代替:
std::ifstream ifs("{\"json\": true}");
json j = json::parse(ifs);
自版本2.0 ,json::operator>>() id deprecated
。一个人应该使用json::json()
代替:
std::ifstream ifs("{\"json\": true}");
json j(ifs);
使用json::operator>>(std::istream&)
:
json j;
std::ifstream ifs("{\"json\": true}");
ifs >> j;
答案 1 :(得分:3)
不推荐使用构造函数json j(ifs)
,将在3.0.0版中将其删除。从版本2.0.3开始,您应该写:
std::ifstream ifs("test.json");
json j = json::parse(ifs);