Решение этой проблемы просто связано с настройкой Serializing DeSerializing поведения библиотеки Jackson.
В конструкторе мы можем предоставить конфигурацию десериализации (-ов) вместе с настроенными десериализаторами.
public class CustomObjectMapper extends ObjectMapper {
public CustomObjectMapper() {
}
}
Подготовьте объект SimpleDeserializers.
SimpleDeserializers simpleDeserializers = new SimpleDeserializers();
Теперь мы подготовили булевский десериализатор для того же самого, нашего индивидуального.
private class BooleanDeserializer<T extends Object> extends
JsonDeserializer<Boolean> {
final protected Class<?> _valueClass = Boolean.class;
@Override
public Boolean deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
// TODO Auto-generated method stub
return _parseBooleanPrimitive2(jp, ctxt);
}
protected final boolean _parseBooleanPrimitive2(JsonParser jp,
DeserializationContext ctxt) throws IOException,
JsonProcessingException {
JsonToken t = jp.getCurrentToken();
if (t == JsonToken.VALUE_TRUE) {
return true;
}
if (t == JsonToken.VALUE_FALSE) {
return false;
}
if (t == JsonToken.VALUE_STRING) {
String text = jp.getText().trim();
if ("true".equals(text)) {
return true;
}
if ("false".equals(text)) {
return Boolean.FALSE;
}
throw ctxt.weirdStringException(_valueClass,
"only \"true\" or \"false\" recognized");
}
// Otherwise, no can do:
throw ctxt.mappingException(_valueClass);
}
}
Это логическое десериализатор является обобщен классом подклассов JsonDeserializer, который поставляется для обработки десериализации значений, которые, как правило, не поддерживаемых булева по умолчанию десериализатора в.
Вы можете создать настраиваемое исключение в установщике, если значение ничего, кроме true или false, если вы используете привязку Джексона к Java bean – tyagi
Исправленная грамматика, форматирование света – LoicTheAztec