посмотреть отличия?
Можно по фичам и подключенным модулям проитерироваться, мб через рефлексию, если так нельзя
распечатанный текстом дифф - хорошая идея, ща попробую глянуть, спасибо. Я пытался просто покопаться в них, но там столько всего, что как иголку в стоге сена искать...
Отпишись сюда, как выяснишь, в чём дело. Очень интересно
Отчасти разобрался, наверное. Если включить default typing, как в доке указано, то он будет делать вот так: PolymorphicTypeValidator ptv = BasicPolymorphicTypeValidator.builder().build(); mapper.activateDefaultTypingAsProperty(ptv, ObjectMapper.DefaultTyping.EVERYTHING, "@type"); .. {"@type":"com.pocketcombats.i18n.jackson.ObjectMapperSerializationTest$AuthenticationResponse","success":true,"denied":false,"message":"Message","token":"..","additionalData":{"@type":"java.util.LinkedHashMap","status":{"@type":"java.lang.Object","status":"IDLE"}}} но тут указывается класс, что меня не устраивает, ибо там java.lang.Object. Лезем в код, видим, что public ObjectMapper activateDefaultTypingAsProperty(PolymorphicTypeValidator ptv, DefaultTyping applicability, String propertyName) { // we'll always use full class name, when using defaulting typer = typer.init(JsonTypeInfo.Id.CLASS, null); ... } Встаю в дебаге, меняю на typer = typer.init(JsonTypeInfo.Id.NAME, null); и получаю нужный мне результат {"@type":"ObjectMapperSerializationTest$AuthenticationResponse","success":true,"denied":false,"message":"Message","token":"..","additionalData":{"@type":"LinkedHashMap","status":{"@type":"battle-status-info","status":"IDLE"}}} осталось теперь только понять, как это без дебага сделать)
Нет там сериализационной фичи с похожим названием?
неа, фичи нет, но вот так работает StdTypeResolverBuilder stdTypeResolverBuilder = new StdTypeResolverBuilder() .init(JsonTypeInfo.Id.NAME, null) .inclusion(JsonTypeInfo.As.PROPERTY) .typeProperty("type"); ObjectMapper mapper = new ObjectMapper(); mapper.setDefaultTyping(stdTypeResolverBuilder); Rubber-duck debugging прям! второй день сижу тычусь, а тут в чатике спросил и сразу решил вопрос. Всем спасибо за внимание
🌚
Обсуждают сегодня