nlohmann json从文件中读取

时间:2016-06-29 08:37:21

标签: c++ json ifstream

我目前正以这种方式阅读我的文件:

using json = nlohmann::json;

std::ifstream jsonConfigFileStream("/path/to/file.json", std::ifstream::in);
json jsonConfigRoot;

if (jsonConfigFileStream.is_open()) {
  jsonConfigFileStream >> jsonConfigRoot;
}

然而它一直给我错误

libc++abi.dylib: terminating with uncaught exception of type std::invalid_argument
Abort trap: 6

错误应来自代码jsonConfigFileStream >> jsonConfigRoot

任何人都可以告诉我正在发生的事情?

1 个答案:

答案 0 :(得分:1)

可能JSON文件中存在错误。检查一些短绒的正确性。 nlohmann json解析器也不喜欢像

这样的悬空分隔符
{"node":[1,2,3,4,]}
                ^

其他失败案例 - 除了数字之外的任何内容都缺少引号。

将其包装在try...catch并记录运行时错误 - 在大多数情况下,它真正解释了解析失败的原因

如果这个条件没问题,那么检查是否可以读取文件。将内容记录到stdout或kinda。