我目前正以这种方式阅读我的文件:
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
任何人都可以告诉我正在发生的事情?
答案 0 :(得分:1)
可能JSON文件中存在错误。检查一些短绒的正确性。 nlohmann json解析器也不喜欢像
这样的悬空分隔符{"node":[1,2,3,4,]}
^
其他失败案例 - 除了数字之外的任何内容都缺少引号。
将其包装在try...catch
并记录运行时错误 - 在大多数情况下,它真正解释了解析失败的原因
如果这个条件没问题,那么检查是否可以读取文件。将内容记录到stdout或kinda。