Джексон игнорирует пустые и пустые значения для карты - PullRequest
1 голос
/ 11 июля 2019

Я прошу прощения, потому что знаю, что этот вопрос задавался много раз, и я прочитал почти все темы, которые я могу найти, но я действительно начинаю сходить с ума.В настоящее время у меня есть объект, который содержит карту

Map <String, String> 

Карта - это, в основном, пары имя-значение, которые я хочу преобразовать в JSON с помощью Джексона.Дело в том, что значение имени может быть нулевым или пустым, то есть, например, пустой строкой, и я не хочу, чтобы они вообще отображались в JSON.Я пробовал аннотации NON_NULL и NON_EMPTY для классов, а также пытался установить их глобально, но, похоже, ничего не работает.Я даже пытался скопировать и вставить приведенный ниже пример из https://www.concretepage.com/jackson-api/jackson-ignore-null-and-empty-fields, и даже это, похоже, не работает для меня.Может кто-нибудь заметить, если я делаю что-то невероятно глупое, или этот пример также не работает для других людей?Я использую Jackson 2.0.4 и, к сожалению, не могу обновить.

        ObjectMapper mapper = new ObjectMapper();
        mapper.setSerializationInclusion(Include.NON_NULL);
        mapper.setSerializationInclusion(Include.NON_EMPTY);
        Map<String, String> map = new LinkedHashMap<>();
        map.put("A11", "Mahesh");
        map.put("A22", null);
        map.put("A33", "");
        String jsonMap = mapper.writerWithDefaultPrettyPrinter()
             .writeValueAsString(map);
        System.out.println("Example is: " + jsonMap);

Я ожидал и хочу, чтобы результат был:

{
  "A11" : "Mahesh"
} 

, но на самом деле это было:

{
  "A11" : "Mahesh",
  "A33" : "",
  "A22" : null
}

Любая помощь очень ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...