Я прошу прощения, потому что знаю, что этот вопрос задавался много раз, и я прочитал почти все темы, которые я могу найти, но я действительно начинаю сходить с ума.В настоящее время у меня есть объект, который содержит карту
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
}
Любая помощь очень ценится.