1
У меня есть следующий deseriailzer:Как настроить десериализатор для третьего лица Enum?
public class HttpStatusDeserializer extends JsonDeserializer<HttpStatus> {
@Override
public HttpStatus deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException, JsonProcessingException {
ObjectCodec oc = jsonParser.getCodec();
JsonNode node = oc.readTree(jsonParser);
return HttpStatus.valueOf(node.asText());
}
}
и зарегистрировать его
public class CustomDeserializerModifier extends BeanDeserializerModifier {
@Override
public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, JsonDeserializer<?> deserializer) {
if (beanDesc.getBeanClass() == HttpStatus.class) {
return new HttpStatusDeserializer();
}
return deserializer;
}
}
mappingJackson2HttpMessageConverter
.setObjectMapper(new ObjectMapper().registerModule(new SimpleModule()
.setSerializerModifier(new CustomSerializerModifier())
.setDeserializerModifier(new CustomDeserializerModifier())));
Он не ссылается на перечисление, но вызвать еще классов.
Как я могу выиграть это?
Вы должны аннотировать класс перечислимую также и ваш метод Deserialize также изменится. Можете ли вы предоставить свой класс enum, чтобы помочь вам лучше? –
@ Айнда Бхаттачария в вопросе Я упомянул, что это переименование третьей стороны. Эта библиотека enum drom. – gstackoverflow