0

我正在使用json-spirit为我的ws++服务器解析 json。

我正在比较用于验证注册过程、确认登录、电子邮件、密码等的字符串。

json-spirit 的get_str()回报const std::string&

我试过了==,,compare甚至strcmpterminate called after throwing an instance of 'std::runtime_error' what(): value type is 0 not 2当我尝试将函数返回与“1 班轮”(全部在if比较语句中)进行比较时,所有程序都会崩溃。

可以使用 1-liner 返回此函数吗?

4

1 回答 1

1

只是在这里猜测:我认为你的来源json并没有给你你认为它给你的价值类型。

我不熟悉 json-spirit,但你的链接有这一段:

You obtain the Value's type by calling Value::type(). You can then call the appropriate getter function. Generally, you will know a file's format, so you will know what type the JSON values should have. A std::runtime_error exception is thrown if you try to get a value of the wrong type, for example, if you try to extract a string from a value containing an integer.

这听起来很像您看到的错误。我猜 json-spirit 认为你的字符串根本不是字符串。当您尝试调用get_str()不是字符串的内容(无论定义为“0”类型)时,它都会引发异常。

编辑:在json-spirit 的源代码中四处寻找,类型“0”是 NULL_TYPE

于 2013-07-09T01:30:18.853 回答