当前位置: 首页 > news >正文

仿163源码商城网网站模板交易平台源码整站打包昆明建设招投标网站

仿163源码商城网,网站模板交易平台源码整站打包,昆明建设招投标网站,宏润建设网站,贵州省城乡建设厅网站材料价简介 该方法用于比较两个Json文件是否完全一致#xff0c;仅考虑内容若两个文件中的内容只是顺序不一致#xff0c;内容是一样的#xff0c;那么也代表这两个文件是相等的 实现代码 调用 using CompareJsonFiles;Console.WriteLine( 输入信息 );Console.WriteL… 简介 该方法用于比较两个Json文件是否完全一致仅考虑内容若两个文件中的内容只是顺序不一致内容是一样的那么也代表这两个文件是相等的 实现代码 调用 using CompareJsonFiles;Console.WriteLine( 输入信息 );Console.WriteLine(请输入源Json文件路径); var sourcePath Console.ReadLine();Console.WriteLine(${Environment.NewLine}请输入目标Json文件路径); var targetPath Console.ReadLine();Console.WriteLine(${Environment.NewLine}您输入的源路径为{sourcePath}目标路径为{targetPath});Console.WriteLine($ 输入信息 {Environment.NewLine});CompareJsonHelper.CompareJsonFiles(sourcePath?.Trim(), targetPath?.Trim());实现 using Newtonsoft.Json.Linq;namespace CompareJsonFiles;/// summary /// 比对Json文件的帮助类 /// /summary public static class CompareJsonHelper {/// summary/// 比较两个JSON文件的内容/// /summary/// param namesourcePath源文件/param/// param nametargetPath目标文件/parampublic static void CompareJsonFiles(string? sourcePath, string? targetPath){if (!IsExistForJsonFile(sourcePath, targetPath)){return;}// 加载并解析JSON文件var json1 JToken.Parse(File.ReadAllText(sourcePath));var json2 JToken.Parse(File.ReadAllText(targetPath));// 标准化JSON结构var normalizedSourceJson NormalizeJson(json1);var normalizedTargetJson NormalizeJson(json2);// 比较JSON内容var differences FindDifferences(normalizedSourceJson, normalizedTargetJson, string.Empty);// 输出差异if (differences.Count 0){Console.WriteLine( 两个文件内容一致);}else{Console.WriteLine( 两个文件存在以下差异);foreach (var diff in differences){Console.WriteLine(diff);}}}/// summary/// 监测源文件和目标文件是不是Json文件/// /summary/// param namesourcePath/param/// param nametargetPath/param/// returns/returnsprivate static bool IsExistForJsonFile(string? sourcePath, string? targetPath){if (string.IsNullOrWhiteSpace(sourcePath)){Console.WriteLine(错误信息源文件路径不能为空);return false;}if (string.IsNullOrWhiteSpace(targetPath)){Console.WriteLine(错误信息目标文件路径不能为空);return false;}if (!System.IO.File.Exists(sourcePath)){Console.WriteLine(错误信息源文件不存在);return false;}if (!System.IO.File.Exists(targetPath)){Console.WriteLine(错误信息目标文件不存在);return false;}if (Path.GetExtension(sourcePath) ! .json){Console.WriteLine(错误信息源文件不是Json文件);return false;}if (Path.GetExtension(targetPath) ! .json){Console.WriteLine(错误信息目标文件不是Json文件);return false;}return true;}/// summary/// 标准化JSON结构以便比较/// /summary/// param nametoken/param/// returns/returnsprivate static JToken NormalizeJson(JToken token){switch (token.Type){case JTokenType.Object:var sortedObject new JObject();var properties token.ChildrenJProperty().ToList();properties.Sort((x, y) string.Compare(x.Name, y.Name, StringComparison.Ordinal));foreach (var prop in properties){sortedObject.Add(prop.Name, NormalizeJson(prop.Value));}return sortedObject;case JTokenType.Array:var sortedArray new JArray(token.Select(NormalizeJson).OrderBy(t t.ToString()));return sortedArray;default:return token.DeepClone();}}/// summary/// 查找两个JSON之间的差异/// /summary/// param namesource/param/// param nametarget/param/// param namepath/param/// returns/returnsprivate static Liststring FindDifferences(JToken source, JToken target, string path){var differences new Liststring();if (source.Type ! target.Type){differences.Add($路径 {path} 类型不同: {source.Type} 和 {target.Type});return differences;}switch (source.Type){case JTokenType.Object:foreach (var property in ((JObject)source).Properties()){if (!((JObject)target).TryGetValue(property.Name, out JToken? tryTargetValue)){differences.Add($路径 {path}.{property.Name} 在第二个文件中不存在);continue;}differences.AddRange(FindDifferences(property.Value, tryTargetValue, ${path}.{property.Name}));}foreach (var property in ((JObject)target).Properties()){if (!((JObject)source).TryGetValue(property.Name, out _)){differences.Add($路径 {path}.{property.Name} 在第一个文件中不存在);}}break;case JTokenType.Array:var arraySource source as JArray;var arrayTarget target as JArray;for (var i 0; i Math.Max(arraySource?.Count ?? 0, arrayTarget?.Count ?? 0); i){if (i arraySource?.Count || i arrayTarget?.Count){differences.Add($路径 {path}[{i}] 数组长度不一致);continue;}differences.AddRange(FindDifferences(arraySource![i], arrayTarget![i], ${path}[{i}]));}break;default:if (!JToken.DeepEquals(source, target)){differences.Add($路径 {path} 值不同: {source} 和 {target});}break;}return differences;} }
http://www.hkea.cn/news/14423167/

相关文章:

  • 海口智能建站价格垡头网站建设
  • 建设工程教育网app下载太原网站优化价格
  • 知名企业门户网站建设服务公司怎么拥有自己的小程序
  • 公司想做个网站应该怎么做led行业网站源码
  • 国外 设计网站wordpress怎样发布时间
  • 手表网站 欧米茄wordpress免签支付插件
  • 换ip对网站有影响吗网页设计简单作品代码
  • 南昌网站建设公司信息pc网站如何做移动适配
  • 重庆怎么制作网站?正规推广平台有哪些
  • 张家界建设网站wordpress mysql port
  • 温州网站建设方案报价做o2o网站需要多少钱
  • 郑州免费网站建设68网页设计欣赏
  • 网站开发完整项目平台网站开发国内最厉害的公关团队
  • 大丰做网站找哪家好wordpress 主题 轮播
  • 建设个网站需要什么wordpress 视频广告
  • 网站推广的电子邮件推广鄂尔多斯市建设网站
  • 网站设计怎么做图片透明度做动物网站的原因是
  • 如何做公司网站空间沈阳市建设工程项目管理中心
  • 夷陵区住房和城乡建设局网站数据营销系统
  • 网页设计代码模板人物介绍seo工具网站
  • 网站备案怎么找人备哈尔滨哪能买到黄页
  • 素质课网站设计与建设做网站用啥框架
  • 网站嵌入播放器国美电器网站建设的思路
  • 深圳市企业网站seo营销工具湖南营销型网站建设
  • 织梦网站后台管理做网站的工作好做吗
  • 哪些人做数据监测网站投票网站定制
  • 建设一个营销网站有哪些步骤谷歌地图网站代码
  • 庆阳网站设计费用wordpress导出表
  • 微盟网站模板如何做wordpress文章页
  • 有没人做阿里巴巴网站维护的辽宁省网站备案