0

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

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

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

4

2 回答 2

0

经过一番搜索和创造性的问题解决,我终于找到了解决这个问题的方法。关于这个问题的文档很少,但是,我确实确定 U 被称为宏——在 Casablanca 中,它将(几乎)任何类型的字符串转换为“utility::string_t”形式。它从字面上做到这一点,不接受变量。

为了解决这个问题,我刚刚将“密码”和“用户名”声明为:

 utility::string_t password
 utility::string_t username

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

于 2015-03-19T02:40:52.747 回答
0

我和你有同样的问题。我尝试了您的解决方案,但无法使其正常工作:

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

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

auto text = U("value1");

之后任务也有效:

answer[L"key1"] = web::json::value::string(text);
于 2016-08-06T02:28:47.640 回答