Примените функцию конфигурации принуждения Джексона к указанным случаям детериализацииJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Примените функцию конфигурации принуждения Джексона к указанным случаям детериализации

Сообщение Anonymous »

Существуют некоторые поля, которые должны быть опустошены от строки до двойного . Тем не менее, конфигурация общего ObjectMapper < /code> не допускает принуждения скаляров:

Код: Выделить всё

configure(MapperFeature.ALLOW_COERCION_OF_SCALARS, false)

Перед реализацией функции функции конфигурации принуждения Джексона эта строка -> двойное преобразование было сделано с помощью пользовательского десериализатора. Например: < /p>

Код: Выделить всё

data class SeriesFrameInputChannel(
@JsonDeserialize(using = TestDeserializer::class)
@JsonProperty("test_field")
val testFieldForConvertion: Double
)

class TestDeserializer : StdDeserializer(Double::class.java) {
override fun deserialize(p: JsonParser, ctxt: DeserializationContext): Double {
return _parseDoublePrimitive(p, ctxt)
}
}
< /code>
Однако после введения конфигурации принуждения произошла следующая ошибка: < /p>
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot coerce String value ("2.2") to `double` value (but might if coercion using `CoercionConfig` was enabled)
Проблема может быть решена, добавив следующие строки в ObjectMapper Конфигурация:

Код: Выделить всё

coercionConfigFor(LogicalType.Integer)
.setCoercion(CoercionInputShape.String, CoercionAction.TryConvert)
Тем не менее, это повлияет на поведение десериализации других полей, а не только Testfieldforconvertion .
Какой подходящий способ применения конфигурации принуждения Джексона к указанному полю>

Подробнее здесь: https://stackoverflow.com/questions/762 ... tion-cases
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»