我有两个需要比较的 JSON 对象。但是我想排除某些属性。有没有一种有效的方法可以做到这一点,而无需迭代所有键?
我正在使用 JSON.NET,它具有 JToken.DeepEquals() 并且非常出色,但它不允许我排除某些键。
Thanks!
好吧,首先我建议将 JSON 解析为某种对象。我们不应该建议外部工具,但您应该能够通过简单的谷歌搜索找到满意的东西。
反序列化通常需要创建某种类/结构来保存 json 对象中的键/值。现在您有了一个可以添加方法的对象。
重写对象的 .Equals()、== 运算符和 != 运算符函数,并提供比较两个对象的实现细节,忽略不重要的键。
一些覆盖的示例代码:
public class DateRange
{
public DateRange(DateTime start, DateTime end)
{
if (start>end)
{
throw new ArgumentException("Start date time cannot be after end date time");
}
Start = start;
End = end;
}
public DateTime Start { get; private set; }
public DateTime End { get; private set; }
public static bool operator ==(DateRange range1, DateRange range2)
{
if (range1.Start == range2.Start && range1.End == range2.End)
{
return true;
}
return false;
}
public static bool operator !=(DateRange range1, DateRange range2)
{
return !(range1 == range2);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)