JSONAssert.assertEquals: игнорирование нескольких полей при сравнении
У меня есть следующая структура JSON
{
"name": "xyz",
"address": {
"street": "avenida",
"number": "41414-44141",
"code": "33ll",
"moreFields": "some data"
},
"moreFields": "some data"
}
В моем классе JUNIT мне нужно будет сравнить два файла JSON, которые имеют вышеуказанную структуру. Однако я хотел бы игнорировать поля address.number
а также address.code
, Я понимаю, что могу использовать приведенный ниже код, чтобы игнорировать одно поле, но как я могу изменить это, чтобы приспособиться к моим требованиям?
assertEquals(json1, json2,
return new CustomComparator(JSONCompareMode.NON_EXTENSIBLE,
Customization.customization("address.code",
(o1, o2) -> {
return true;
})
));
Глядя на реализацию, кажется, что регулярное выражение, которое мы предоставляем для метода настройки, изменено, и я не могу представить значение для path
параметр, который может OR
состояние.
Любые предложения очень ценятся
Спасибо!
0 ответов
Попробуй это
CustomComparator comparator = new CustomComparator(
JSONCompareMode.LENIENT,
new Customization("address.nunber", (o1, o2) -> true),
new Customization("address.code", (o1, o2) -> true));
JSONAssert.assertEquals(
expectedJsonAsString,
actualJsonAsString,
comparator);
Я не совсем уверен насчет Xpath. Возможно, вам стоит попробовать поставить перед ним префикс**.
для изгиба.
Береги себя. Джулиан.