Я пытаюсь сравнить документы quickjson, но он дает сообщение об ошибке, что я не уверен, как исправить (см. Выше).Сравнение errorjson document error - error no operator [] соответствует этим операндам
Это rapidjson:
static const std::string& JSON()
{
static const std::string j =
"{"
"\"SimpleCompany:Manager\":{"
"\"read\":\"true\""
"\"update\":\"true\""
"\"delete\":\"true\""
"\"insert\":\"false\""
"},"
"\"SimpleCompany:Manager\":{"
"\"read\":\"true\""
"\"update\":\"true\""
"\"delete\":\"false\""
"\"insert\":\"false\""
"},"
"}";
return j;
}
Это где я пытаюсь сравнить два документа с предположительно тем же содержанием:
rapidjson::StringStream strStream(JSON().c_str());
rapidjson::Document origDocument;
origDocument.ParseStream(strStream); //newDocument obtained other way
ASSERT_TRUE(newDocument["read"] == origDocument["read"]); //error no operator [] matches these operands
ASSERT_TRUE(strcmp(newDocument["read"] , origDocument["read"])); //error no operator [] matches these operands
const rapidjson::Value& a1 = newDocument["read"]; //error no operator [] matches these operands
Любая идея, как правильно сравнивать их значения? Я пробовал два пути, но им не понравилось [.
Мило говорит, что есть equality operator. Похоже, я сравниваю такие вещи, как rapidjson tutorial, хотя они сравнивают ключ с ожидаемым значением, и я сравниваю ключи двух документов для равенства, что мне кажется хорошо.