C ++:使用nlohmann json从文件中读取json对象

时间:2015-11-10 10:47:57

标签: c++ json file nlohmann-json

我正在使用nlohmann的json库来处理c ++中的json对象。最后,我想从文件中读取json对象,例如像这样的简单对象。

{
"happy": true,
"pi": 3.141
}

我不太清楚如何处理这个问题。在https://github.com/nlohmann,有几种方法可以从字符串文字中反序列化,但是将它扩展为读入文件似乎并不容易。有任何人对此有经验吗?

2 个答案:

答案 0 :(得分:21)

更新2017-07-03 JSON for Modern C++ version 3

3.0版以来,不推荐使用json::json(std::ifstream&)。一个人应该使用json::parse()代替:

std::ifstream ifs("{\"json\": true}");
json j = json::parse(ifs);

更新 JSON for Modern C ++版本2

版本2.0 json::operator>>() id deprecated。一个人应该使用json::json()代替:

std::ifstream ifs("{\"json\": true}");
json j(ifs);

JSON for Modern C ++ version 1

的原始答案

使用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);