【问题标题】:Compare rapidjson::Documents比较 rapidjson::Documents
【发布时间】:2014-07-23 11:44:35
【问题描述】:

我有两个 RapidJSON 文档。一个是我在运行时创建的,另一个是从磁盘读取的。

我想比较这两个文件是否相似。比较 RapidJSON 文档的最佳方法是什么?

我的 JSON 看起来像这样

{
    "SimpleCompany:Manager":
    {
        "read":true,
        "update":true,
        "delete":true,
        "insert":true
    },
    "SimpleCompany:Manager":
    {
        "read":true,
        "update":true,
        "delete":true,
        "insert":true
    },
}

【问题讨论】:

  • 你想听什么?它们是字符串吗?哈希它们可能吗?
  • 是的,这些值是字符串...我只想读取这些值并将它们与我的其他 Json 文档对象匹配。这些是可以比较两个 json 对象的内置函数吗?
  • 目前我们正在建立一个分支以提供Value::operator==()github.com/miloyip/rapidjson/issues/91
  • 你有没有得到这个工作?当我尝试比较 strcmp(newDocument["read"] , origDocument["read"])) 我得到 //error no operator [] 匹配这些操作数。当我尝试这样做时,我也明白了 const rapidjson::Value& a1 = newDocument["read"];

标签: c++ c json rapidjson


【解决方案1】:

是的,现在,GenericValue 用其他值、字符串或原语覆盖 operator==

bool operator==(const GenericValue<...>& rhs) const;
bool operator==(const Ch* rhs) const;
bool operator==(const std::basic_string<Ch>& rhs) const;
bool operator==(const T& rhs) const;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多