我需要使用 jsoncpp 库读取 json 文件。
我有这个文件:
{"one":false,"two":[{"id":"first"},{"id":"second"}],"three":550}
如果我只需要读取“两个”元素的第一个 id,我使用:
std::string contents; //Contain the file
Json::Value root;
Json::Reader reader;
reader.parse(contents, root, false);
std::string aux = root["two"][0]["id"].asString();
它在 Linux 中运行良好,但是当我在 Windows 中尝试时出现此错误:
error: ambiguous overload for 'operator[]' in 'root.Json::Value::operator[](((const char*)"two"))[0]'
为什么会发生,我该如何解决?谢谢。
已解决:有两种operator[]
,一种带有int
as参数,另一种带有const char
as参数,编译器不知道在Windows中使用谁,但在Linux中可以。现在我改用[0u]
一个[0]
数字作为参数,它工作正常。