c++ - 比较从函数返回的两个 std::string 常量(两个 json-spirit get_str()s)1-liner

标签 c++ validation constants string-comparison json-spirit

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

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

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

我试过==compare,甚至strcmp。当我尝试将函数返回与“1 衬里”(都在 if 比较语句中)。

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

最佳答案

这里只是猜测:我认为您的源代码 json 在值的类型方面没有给您您认为它给您的东西。

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

您通过调用 Value::type() 获得值的类型。然后您可以调用适当的 getter 函数。通常,您会知道文件的格式,因此您会知道 JSON 值应该具有什么类型。如果您尝试获取错误类型的值,例如,如果您尝试从包含整数的值中提取字符串,则会抛出 std::runtime_error 异常。

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

编辑:四处寻找 json-spirit's source , 类型 "0"是 NULL_TYPE

关于c++ - 比较从函数返回的两个 std::string 常量(两个 json-spirit get_str()s)1-liner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17538465/

相关文章:

#{component.valid} : "valid cannot be resolved as a member of component” 上的 Eclipse 错误

C,符号常量定义中出现错误(可能在函数参数中)

c++ - 我应该为永远恒定的值创建一个全局常量变量,例如足球运动员的数量吗?

java - 不使用未实现的接口(interface)来保存常量的原因是什么?

c++ - C++中的**是什么?

ruby-on-rails - 两种模型,一种 STI 和一种验证

c++ - CMake 项目中的 qmake 子项目

javascript - jQuery 验证 - 使用多个 errorLabelContainer

c++ - do{}while(0) 有什么用?

c++ - 在 cmake-gui 中修改变量