如何根据键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"))
这个适合我。
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"))
这个适合我。