如何根据键C++比较JSON中的值

How to compare the value in JSON based on the key C++

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] 那么,如何根据键获取值并将该值与字符串进行比较?

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

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

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

应该可以。

其次,为了比较,尝试先声明一个 wstring,然后再比较 like

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

这应该有效。

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

这个适合我。