Casablanca:将变量分配给JSON表值

时间:2015-03-18 23:57:44

标签: c++ json casablanca

这可能是一个简单的问题,但我不知道答案。我试过谷歌搜索它,但我不知道该怎么去谷歌。我需要为JSON表值(用户名字符串到用户名表值)分配一个变量。我在MSDN上看到了一个这样的例子:

 obj2[L"password"] = json::value::string(U("password"));

但是,如果我删除引号并输入变量名称,则会出错。我有一种感觉,这与" U"有关。但是,我老实说不知道那是什么" U"被称为(迭代器?)或如何更改它。你能帮帮我吗?

2 个答案:

答案 0 :(得分:0)

经过一些搜索和创造性问题解决后,我终于找到了解决这个问题的方法。关于这个问题的文档很少,但是,我确实将U称为宏 - 在卡萨布兰卡它将(几乎)任何类型的字符串转换为" utility :: string_t"形成。它按字面意思执行,不接受变量。

为了解决这个问题,我刚刚宣布了密码'和'用户名'为:

 utility::string_t password
 utility::string_t username

然后照常与他们合作。希望这可以帮助任何有同样问题的人!

答案 1 :(得分:0)

我遇到了同样的问题。我尝试了你的解决方案,但我无法使其工作:

try {
   Integer.parseInt(phoneNo);
}
catch (NumberFormatException e)  {
    msg += "Plese enter amount in Integers.\n";
}
if (phoneNo.length() == 0)
   msg += "Please Enter Phone Number.\n";
if (phoneNo.length() != 8)
    msg += "Invalid Phone Number.\n";   

所以寻找其他方法我发现这也有效:

utility::string_t text = "value1"; //no suitable constructor exists from     const char to basic string

之后,作业也有效:

auto text = U("value1");