如何比较大的 JSON?

2023-11-29

有 2 个通过代码从同一源创建的大 JSON (~GB) 文件,它们的工作原理应该完全相同,但有时应该存在一些细微的差异。

想要确保两次转换都完成了相同的工作并且正确。制作了一个小项目,将 JSON 转换为 CSV 类型,并包含元素及其内容(单值或数组/对象)的路径。然后计划通过任何文本差异来比较“CSV”JSON。

来源(在我的 GitHub 上)由于篇幅有限,篇幅相当长,并不是问题的主要部分。它通常无法正常工作(在一个大的简单 JSON 和此处显示的另一个上进行了测试,不想使用递归,代码非常棘手)。

导出示例JSON 数据集示例 # 示例 4当 IS 设置为时说明您的想法类型,水平格式 and Sort All好像:

batters\batter\Blueberry\   id  1003
batters\batter\Devil's Food\    id  1004
batters\batter\Chocolate\   id  1002
batters\batter\Regular\ id  1001
donut\  id  0001    name    Cake    ppu 0.55
topping\Glazed\ id  5002
topping\Chocolate with Sprinkles\   id  5006
topping\Chocolate\  id  5003
topping\Maple\  id  5004
topping\None\   id  5001
topping\Powdered Sugar\ id  5007
topping\Sugar\  id  5005

这是一个好主意还是有更好的选择?

处理后的 JSON 预览:

{ "type": "donut",
  "id": "0001", "name": "Cake", "ppu": 0.55,
  "batters": { "batter": [ {
        "id": "1001", "type": "Regular"
      },{
        "id": "1002", "type": "Chocolate"
      },{
        "id": "1003", "type": "Blueberry"
      },{
        "id": "1004", "type": "Devil's Food"
  }]},
  "topping": [ {
      "id": "5001", "type": "None"
    },{
      "id": "5002", "type": "Glazed"
    },{
      "id": "5005", "type": "Sugar"
    }, ...

至少还有两个选择 -另一个问题中的第一个和新方法删除双胞胎添加到我的 GitHub 上的 Gason C++ 翻译为 C#。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何比较大的 JSON? 的相关文章

随机推荐