2016-09-29 96 views
0
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] 因此,我怎麼能得到基於鍵的值並且將該值與一個字符串進行比較?

回答

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

這一個適合我。

0

所有,錯誤告訴你究竟應該是什麼。

json requ ires wstring參數,或者如果不是wstring,則可以輸入文字。

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

應該工作。

其次,比較嘗試聲明的wstring第一,然後比較喜歡

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

這應該工作。

+0

JSONKeyRequest是一個宏定義了一個字符串。該錯誤發生在getObj [JSONKeyRequest],它指出錯誤發生在第一個大括號[,不是因爲等號的右側。 – firstaccount