Я пытаюсь сравнить документы Rapidjson, но выдает сообщение об ошибке, которое я не знаю, как исправить (см. выше).
Это 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
Любая идея, как правильно сравнивать их значения? Я попробовал два способа, но им не понравился [.
Майло говорит, что существует оператор равенства. Похоже, я сравниваю такие вещи, как руководство по rapidjson, хотя они сравнивают ключ с ожидаемым значением. , и я сравниваю ключи двух документов на равенство, что мне кажется нормальным.