Как сравнить большие JSON? - PullRequest
2 голосов
/ 09 мая 2019

Имеют 2 больших файла JSON (~ ГБ), созданных из одного и того же исходного кода, которые должны работать точно так же, но иногда должны быть небольшие отличия.

Хочу убедиться, что оба преобразования сделали ту же работу и правильно. Сделал небольшой проект для преобразования JSON в вид CSV с указанием пути к элементам и их содержимому (одно значение или массивы / объекты). Планирование сравнения JSON-файлов "CSV" по любому текстовому дифференциалу

Источник (на моем GitHub) довольно длинный для ограниченного пространства здесь и не является основной частью вопроса. Обычно он не работает должным образом (проверено на большом простом JSON и другом, показанном здесь, не хотел использовать рекурсию, код довольно сложный).

Пример экспорта Пример набора данных JSON # Пример 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 Ответ

1 голос
/ 21 мая 2019

Есть как минимум 2 варианта - 1-й здесь, в другом вопросе и новый метод RemoveTwins добавлен в Gason C ++ в переводе на C # - на моем GitHub.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...