【发布时间】:2017-10-01 21:47:41
【问题描述】:
如果我有两个 JSON 文件/表达式,我如何确定 JSON 的 data-content 在功能上是否等效?
即比较应该忽略语法,如:
- 所有空格/换行符(字符串之外)。
- 对象成员的排序。
- 等效的 unicode 字符(例如 \u0041 = A)。
我知道需要某种 JSON 解析器,但我不知道我的选择。我的数据在 SQL 服务器上,所以我有直接可用的 SQL JSON 函数和 SSIS 脚本组件 (C#/.Net)。
或者:有没有办法计算 JSON data-content 的哈希值,是否有任何标准可以在计算哈希之前最小化/唯一化 JSON 表达式。
编辑:JSON 架构未知且未修复。
【问题讨论】:
-
反序列化和比较?
-
也可以考虑在 SQL 端进行。
-
@Plutonix 你能提供一个最小的例子吗?它需要类定义吗?
-
@MichałŻołnieruk 如何在 SQL 上做到这一点? (我是 SQL 专家,但对此一无所知。)
-
@MartinThøgersen - 在这种情况下,我认为 json.net 和
JTokenEqualityComparer应该可以满足您的需求。
标签: c# .net sql-server json ssis