setSerializationInclusion(JsonInclude.Include.NON_NULL) 没有作用
问题
在学web-flash的JsonUtil代码发现toJsonNotNull不起作用。
public static String toJsonNotNull(Object obj) {
StringWriter sw = new StringWriter();
try {
objectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper().writeValue(sw, obj);
} catch (Exception e) {
throw new RuntimeException(e);
}
return sw.toString();
}
代码中objectMapper()是静态方法,用于获取static变量objectMapper,并且objectMapper只会初始化一次。
当调用其他json方法后,也就是说objectMapper().writeValue(obj);
后,toJsonNotNull就会失效。只有当toJsonNotNull是第一次调用,就是说objectMapper在第一次writeValue前,设置了objectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL);
,才会起作用。