Можно ли сериализовать объект без полей в Джексоне, используя только аннотации? Когда я пытаюсь сериализовать такой объект без аннотаций, я получаю:
Exception in thread "main" com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class [redacted].SubjectObjectFeatureExtractor and no properties discovered to create BeanSerializer
Я рассмотрел список аннотаций Джексона, не видя способа аннотировать класс как не имеющий сериализуемых данных. Я попытался положить @JsonCreator
в пустой конструктор (не ожидая, что он сработает, так как это аннотация для десериализации), и я получил ту же ошибку. Для включения @JsonProperty
нет аксессуаров или полей. Любые идеи?
Обновление: Причина этого заключается в том, что у меня есть список объектов, представляющих преобразования, которые могут быть применены к определенному типу данных. Некоторые из этих преобразований определяются параметрами, которые должны быть сериализованы, но некоторые из них не имеют параметров (без данных без данных). Я хотел бы иметь возможность сериализовать и десериализовать последовательность этих преобразований. Кроме того, я использую DefaultTyping.NON_FINAL
, чтобы имя класса было сериализовано.
Обновление: Примерный класс:
class ExtractSomeFeature implements FeatureExtractor<SomeOtherType> {
public void extractFeature(SomeOtherType obj, WeightedFeatureList output) {
// do stuff
}
}
Мне не все равно, как выглядит JSON для этого, если я правильно десериализую List<FeatureExtractor>
. У меня сложилось впечатление, что с использованием типизации по умолчанию ожидаемый JSON будет примерно таким:
['com.mycompany.foo.ExtractSomeFeature', {}]
Другие подклассы FeatureExtractor
будут иметь реальные параметры, поэтому они предположительно выглядят примерно так:
[`com.mycompany.foo.SomeParameterizedFeature', {some actual JSON stuff in here}]
Я думаю, что я мог бы использовать @JsonValue
для некоторого метода toJSONString()
для возврата {}
, но по возможности я хотел бы скрыть такой хакерство у конечных пользователей, которые будут создавать подклассы FeatureExtractor
.