如何比较大JSON?

时间:2019-05-09 14:05:42

标签: c# json

通过代码从同一源创建了2个大的JSON(〜GB)文件,它们应该完全相同,但是有时应该会有一些细微的差异。

希望确保两次转换都能正确完成相同的工作。做一个小项目,将JSON转换为CSV类型,并带有指向元素及其内容(单个值或数组/对象)的路径。然后计划通过任何文本差异比较“ CSV” JSON。

Source (on my GitHub)对于此处的有限空间来说相当长,并且不是问题的主要部分。通常它不能正常工作(已在一个大型的简单JSON上进行了测试,并在此处显示了另一个示例,不想使用递归,代码非常棘手)。

示例导出JSON Data Set Sample # Example 4来说明ID设置为类型,水平格式全部排序时的想法:

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"
    }, ...

1 个答案:

答案 0 :(得分:0)

至少有2个选项-1st here in another question,并且在我的GitHub上将{@ 3}}和新方法 RemoveTwins 添加到Gason C ++中并转换为C#。