我很抱歉,因为我知道这个问题已经被问过无数次了,我已经阅读了几乎所有可以找到的主题,但是我真的开始失去理智了。我目前有一个包含地图的对象
Map <String, String>
该映射基本上是我想使用Jackson转换为JSON的名称值对。关键是,名称的值可以为null或为空,例如,为空字符串,我根本不希望它们显示在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
}
非常感谢您的帮助。