Как сравнить два JsonNode с Джексоном? - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть метод, который сравнивает два объекта, но я не знаю, как сравнить JsonNode с библиотекой Джексона.

Я хочу получить что-то подобное:

private boolean test(JsonNode source) {
    JsonNode test = compiler.process(file);
    return test.equals(source);
}

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Ваш текущий код выглядит нормально, класс JsonNode предоставляет JsonNode.equals(Object) метод для проверки:

Равенство для узловых объектов определяется как полное (глубокое) равенство значений.

Начиная с версии 2.6 также имеется перегруженная версия, в которой используется пользовательский компаратор:

public boolean equals(Comparator<JsonNode> comparator, JsonNode other){
    return comparator.compare(this, other) == 0;
}
0 голосов
/ 20 декабря 2018

Этого достаточно, чтобы использовать JsonNode.equals :

Равенство для узловых объектов определяется как полное (глубокое) равенство значений.Это означает, что можно сравнивать полные деревья JSON на равенство, сравнивая равенство корневых узлов.

Возможно также добавить нулевую проверку как test != null

...