Mar*_*sen 0 .net c# sql-server json ssis
如果我有两个 JSON 文件/表达式,我如何确定 JSON 的数据内容在功能上是否相同?
即比较应该忽略语法,如:
我知道需要某种 JSON 解析器,但我不知道我的选择。我的数据在 SQL 服务器上,所以我可以直接使用 SQL JSON 函数和 SSIS 脚本组件 (C#/.Net)。
或者:有没有办法计算 JSON data-content 的哈希值,在计算哈希之前是否有最小化/统一 JSON 表达式的标准。
编辑:JSON 架构未知且未修复。
根据评论中的反馈,这是我基于JTokenEqualityComparer
. 该方法将通过使用 SSIS 脚本任务或 SQL CLR 应用于 SQL 服务器。
using System;
using Newtonsoft.Json.Linq;
namespace JSON_Comparison_Test
{
class Program
{
static void Main(string[] args)
{
String jsonString1 = "{\"key1\":\"ABC\",\"key2\":\"DEF\"}";
String jsonString2 = "{ \"key2\":\"DEF\" , \r\n \t \"key1\" : \"\u0041BC\" }";
var obj1 = JToken.Parse(jsonString1);
var obj2 = JToken.Parse(jsonString2);
var comparer = new JTokenEqualityComparer();
var hashCode1 = comparer.GetHashCode(obj1);
var hashCode2 = comparer.GetHashCode(obj2);
Console.WriteLine(hashCode1.ToString()); // -323033486
Console.WriteLine(hashCode2.ToString()); // -323033486
Console.WriteLine(comparer.Equals(obj1, obj2)); // True
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1085 次 |
最近记录: |