【发布时间】:2020-04-23 12:38:50
【问题描述】:
目前我有一个 JSON 文件 (Test.json),其中包含一些 json 格式的有效数据,我正在尝试使用 JsonCpp 使用 json 对象 (readData) 解析数据,如下所示
Json::Value readData;
std::ifstream readFile("Test.json");
readFile >> readData;
如果 json 文件具有 json 格式的有效内容,这可以正常工作,但如果内容不是 json 格式,它会在“readFile >> readData”处崩溃。 在将文件分配给 C++ 中的 json 对象之前,有什么方法可以验证文件?
【问题讨论】:
-
std::ifstream readFile(Test.json);不会编译。我相信你的意思是std::ifstream readFile("Test.json");。 -
如果它崩溃,我最好的选择是不成功的读取会引发异常。尝试获取文档以进行确认或将您的
>>包装在try-catch块中并尝试捕获正确的异常。 -
你在使用JsonCpp库吗?
-
@Fureeish 确实,open-source-parsers.github.io/jsoncpp-docs/doxygen/… 说“解析错误时出现std::exception”。
-
@Azeem 是的,我正在使用 jsoncpp 库