gpt4 book ai didi

c# - 查找两个 json 对象之间的差异

转载 作者:IT王子 更新时间:2023-10-29 04:38:59 32 4
gpt4 key购买 nike

.Net 中是否有任何库可以帮助比较和找出两个 json 对象之间的差异?我发现了一些适用于 JavaScript 的解决方案,但对 C# 没有任何有趣的解决方案。我的问题的重点是根据比较创建以某种方式标记更改的 json。以便用户可以看到更改的位置。

最佳答案

using Microsoft.XmlDiffPatch;
using Newtonsoft.Json;

将每个 json 转换为 xml 并使用 MS XmlDiff 库。在 nuget 上可用.差异在另一个 xml 文档中给出,我在这里写入控制台。例如,这适用于单元测试。

public bool CompareJson(string expected, string actual)
{
var expectedDoc = JsonConvert.DeserializeXmlNode(expected, "root");
var actualDoc = JsonConvert.DeserializeXmlNode(actual, "root");
var diff = new XmlDiff(XmlDiffOptions.IgnoreWhitespace |
XmlDiffOptions.IgnoreChildOrder);
using (var ms = new MemoryStream())
using (var writer = new XmlTextWriter(ms, Encoding.UTF8))
{
var result = diff.Compare(expectedDoc, actualDoc, writer);
if (!result)
{
ms.Seek(0, SeekOrigin.Begin);
Console.WriteLine(new StreamReader(ms).ReadToEnd());
}
return result;
}
}

关于c# - 查找两个 json 对象之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667085/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com