Джексон - принять пустую строку в свойстве объекта - PullRequest
0 голосов
/ 27 августа 2018

У меня есть POJO, как это

@Data
public class Tree {
   String id;
   Leaf leaf;
}

Как сделать, чтобы мой контроллер покоя с RequestBody "Tree" принимал JSON-запрос с пустой строкой на листе свойств, пропускал ее и считал нулевым. Пример запроса JSON

 {
      "id": "foo",
      "leaf": ""
 }

Ответы [ 3 ]

0 голосов
/ 27 августа 2018

Вы должны установить атрибут ACCEPT_EMPTY_STRING_AS_NULL_OBJECT вашего ObjectMapper на true.

См. Документацию :

Определяет, принимается ли пустое значение String в качестве нулевого значения для обычные POJO ("бобы") с привязкой к данным: это может быть полезно, когда Работа с конечными точками, написанными на языке, который имеет свободную типизацию и может представлять отсутствующие объекты как пустые строки.

Если вы используете Spring Boot, вы можете найти подробности здесь о том, как настроить ObjectMapper.

0 голосов
/ 27 августа 2018

Вам необходимо настроить Jackson ObjectMapper на прием пустой строки как нуля. Для этого просто добавьте следующий метод в ваш класс конфигурации.

@Bean
public ObjectMapper mapper() {
    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
    return mapper;
}
0 голосов
/ 27 августа 2018

Настройте ObjectMapper следующим образом:

ObjectMapper om = new ObjectMapper();
om.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...