У меня есть два приложения, одно из которых построено на c #, другое - на JAVA.У них обоих есть «compareJsonService» и одна и та же логика.
Детали логики:
public void compareJsonService(int id,Person personFromCenter){
PersonDTO person = personRepository.getByPK(id);
if(!person.getJson().equals(JsonUtil.serialize(personFromCenter)){
personRepository.updatePerson(convertPersonToDTO(personFromCenter,person));
}
}
Объект personFromCenter является уникальным, независимо от того, является ли оно в приложении Java или приложении C #.Они получают personDTO из базы данных с помощью pk и сравнивают поле json, когда результат является быстрым, затем обновляются.
Но результат сериализации не равен, я думаю, что это вызвано различными механизмами сериализацииjava и c #.
они оба используют метод equals для сравнения выходных данных, затем всегда получают false (потому что их значения сравнения последовательных строк различаются). Поэтому они всегда обновляются.Проблема в том, что мне нужно решение, похожее на спокойный интерфейс, который передает объект Person и возвращает строку json, поэтому, используют ли этот сервис Java или c #, они получают один и тот же сериализованный вывод.
Итак, прежде чем я перенесу весь код c # на Java, сколько решений для решения проблемы? И какой из них самый простой?