如何比较基于密钥C++的JSON中的值
问题描述:
web::json::value obj;
obj[JSONKeyRequest] = web::json::value::string(JSONValueRequest);
我创建JSON值并向其中插入一些键和值。 后来我得到这个OBJ另一个函数,试图检查obj是否[JSONKeyRequest]等于“ABC”,但它不工作:如何比较基于密钥C++的JSON中的值
web::json::value getObj = this->GetSendObj();
if (getObj[JSONKeyRequest] == web::json::value::string(L"abc"))
{
}
然而,VC一直表示:“错误:没有运营商[]匹配这个操作数,操作数类型是const web :: json :: value [std :: wstring] 因此,我怎么能得到基于键的值并且将该值与一个字符串进行比较?
答
if (getObj.at(key) == web::json::value::string(L"abc"))
这一个适合我。
答
所有,错误告诉你究竟应该是什么。
json requ ires wstring参数,或者如果不是wstring,则可以输入文字。
obj[L"JSONKeyRequest"] = web::json::value(L"JSONValueRequest");
应该工作。
其次,比较尝试声明的wstring第一,然后比较喜欢
wstring temp = "abc";
if (getObj["JSONKeyRequest"] == temp)
{
}
这应该工作。
JSONKeyRequest是一个宏定义了一个字符串。该错误发生在getObj [JSONKeyRequest],它指出错误发生在第一个大括号[,不是因为等号的右侧。 – firstaccount