【发布时间】:2022-01-14 03:09:04
【问题描述】:
我觉得我在这里服用了疯狂的药丸......但是我如何比较两个 JsonDocuments(或 JsonElements 或你有什么)的 JSON 相等性,即具有相同值的相同键?
为了限制范围,在单元测试中执行这种比较的能力已经足够了。
我有一个单元测试,我想将返回 JsonDocument 的函数的结果与某个预期值进行比较。不起作用的事情包括使用 FluentAssertions.Json(因为我的类型不是 JObject),以及比较 GetRawText 的值,因为我不关心空格。
我想我可以写出字符串并重新序列化它们或其他东西,但老实说,这感觉像是一种黑客行为,我一定做错了什么。
我了解比较它们的业务逻辑,我看过其他问题,例如this 和this。第一个更符合我想要的,这对于C#来说只是一个尴尬的结果...... 第二个根本不是我需要的。
【问题讨论】:
-
仅在最令人失望的意义上。我没有任何困难理解执行这种比较所需的业务逻辑。我只是很难理解为什么 C# 社区认为 Homerolling 比较逻辑是可以接受的。
-
非常不清楚你在问什么 - 显然你不是在寻找图书馆(离题),你声称本质上相同的“深度平等”问题绝对不是你想要的......请edit 澄清您希望看到的答案的问题。
-
@ChristophLütjen 谢谢,这看起来很有希望,我很感激
-
没试过,但是你能不能在
JsonDocument上GetHash()然后比较哈希?