Сравнение 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 файла без десериализации?