如何根据密钥C ++

时间:2016-09-29 20:44:20

标签: c++ json casablanca

web::json::value obj;

obj[JSONKeyRequest] = web::json::value::string(JSONValueRequest);

我创建一个JSON值,并为其插入一些键和值。 然后我在另一个函数中得到这个obj,试图检查obj [JSONKeyRequest]是否等于" abc",但它没有工作:

web::json::value getObj = this->GetSendObj();
if (getObj[JSONKeyRequest] == web::json::value::string(L"abc"))
{
}

然而,VC保持显示:"错误:没有运算符[]匹配此操作数,操作数类型是const web :: json :: value [std :: wstring] 那么,我怎样才能根据键获取值并将值与字符串进行比较?

2 个答案:

答案 0 :(得分:0)

首先,错误告诉你参数应该是什么。

json 需要 wstring 参数,如果不是wstring,则可以输入文字。

obj[L"JSONKeyRequest"] = web::json::value(L"JSONValueRequest");

应该有用。

其次,为了进行比较,首先尝试声明 wstring ,然后比较

wstring temp = "abc";
if (getObj["JSONKeyRequest"] == temp)
{
}

这应该有用。

答案 1 :(得分:0)

if (getObj.at(key) == web::json::value::string(L"abc"))

这个适合我。