c# – 找到两个json对象之间的差异
发布时间:2020-12-15 03:51:29 所属栏目:百科 来源:网络整理
导读:在.Net中有没有任何库可以帮助比较和找到两个json对象之间的差异?我已经找到了一些可用于 JavaScript的解决方案,但C#没有什么有趣的.我的问题是要根据比较来以某种方式创建更改标记的json.以便用户可以看到更改的位置. 解决方法 using Microsoft.XmlDiffPat
在.Net中有没有任何库可以帮助比较和找到两个json对象之间的差异?我已经找到了一些可用于
JavaScript的解决方案,但C#没有什么有趣的.我的问题是要根据比较来以某种方式创建更改标记的json.以便用户可以看到更改的位置.
解决方法using Microsoft.XmlDiffPatch; using Newtonsoft.Json; 将每个json转换为xml并使用MS XmlDiff libary.在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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |