use = JsonTypeInfo.Id.MINIMAL_CLASS option will serialize minimal relative package path. For example, for supertype "com.logicbig.example.Shape", and concrete type "com.logicbig.example.shapes.Circle", only ".shapes.Circle" would be included; for "com.logicbig.example.shapes.impl.Rectangle" only ".shapes.impl.Rectangle" would be included and for "com.logicbig.example.Square" only ".Square" will be included.
Я не могу понять, как опция понимает, что минимальный относительный путь пакета именно такой? В примере про Shape, почему, например, не .example.shapes.Circle, а именно .shapes.Circle? Относительно чего выбирается путь?
Минимальный путь класса выбирается путем сравнения двух классов - суперкласса и подкласса.
В данном примере суперкласом является com.logicbig.example.Shape, подклассом которого является com.logicbig.example.shapes.Circle. У них есть общий путь com.logicbig.example, который удаляется при сериализации. Поэтому остается только Shape и .shapes.Circle.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости