Сравнение 2-х JSON-файлов

Нужно сравнить 2 файла в формате JSON на соответствие значений в C#.

1-й я получаю в ответе от API:

{
    "result": [
        {
            "name": "bonus",
            "currency": [
                2,
                5
            ],
            "max_sum": [
                30000,
                350       
            ],
            "provider": "1"
        },
        {
            "name": "extra",
            "currency": [
                2,
                5
            ],
            "max_sum": [
                20000,
                220
            ],
            "provider": "2"
        }
   ]
}

2-й я получаю из БД с помощью EF, и конвертирую значения в JSON. Получается коллекция, содержащая значения:

{
  "CurrencyList": [
    {
      "Id": 2,
      "MaxSum": 30000.0
    },
    {
      "Id": 5,
      "MaxSum": 350.0
    }
  ]
}
{
  "CurrencyList": [
    {
      "Id": 2,
      "MaxSum": 20000.0
    },
    {
      "Id": 5,
      "MaxSum": 220.0
    }
  ]
}

Мне нужно проверить соответствие значения 1-го файла значениям 2-го файла, где result.currency и result.max_sum из 1-го файла равно CurrencyList.Id и CurrencyList.MaxSum из 2-го файла.

Вариант десериализовать и проверять модельки не подходит, т.к. задача состоит в том, чтобы отправить API-запрос, и проверить соответствие значениям из БД.

Я пробовал делать вот так, вложенными циклами:

for (var i = 0; i < content["result"].Count(); i++)
{
    for (var k = 0; k < promoParamsInJson["CurrencyList"].Count(); k++)
    {
        AssertAreEqual((int)content["result"]?[i]?["currency"]?[i],
            (int)promoParamsInJson["CurrencyList"]?[i]?["Id"]);

        AssertAreEqual((int)content["result"]?[i]?["max_sum"]?[k],
            (int)promoParamsInJson["CurrencyList"]?[k]?["MaxSum"]);
    }
}

Но всегда получаю только последние значения, и тесты падают. Как правильно сравнить эти 2 файла без десериализации?


Ответы (0 шт):