【发布时间】:2016-08-29 09:06:49
【问题描述】:
我正在尝试从我的 json 中删除所有空值。
{
"key" : null
}
我用过:
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);
这里的“key”是一个列表,所以当我使用上面的序列化选项时,json 被转换为:
{
"key" : []
}
我希望 json 是:
{
}
我不想使用
Include.NON_EMPTY
因为我的项目中有其他 json,我需要在其中显示空列表和 0 值键。当它是一个列表时,有什么方法可以删除空值键,就像它对字符串值一样?
我不能使用注释,因为类文件是使用 jaxb 从 xml 生成的。类结构:
public class C1 {
protected List<C2> key;
public List<C2> getKey() {
if (key == null) {
key = new ArrayList<C2>();
}
return this.key;
}
}
我已经被困了一段时间了。非常感谢任何帮助。提前致谢。
【问题讨论】:
-
您是否尝试过在类上方使用注释。 @user145078
-
在我们的生产环境中,我们使用 jaxb 将 xml 转换为 pojo,因此我无法控制创建的 java 文件,也无法使用注释 @VikrantKashyap
-
那么您已经编写了一个自定义 NullSerializer 以避免在序列化对象中出现
key。 @用户 -
是否有我可以查看的文档或示例来实现这一点? @VikrantKashyap
-
能否请您发布您要序列化的
class结构。 @user145078 因为它不清楚你到底想序列化什么.. Thanxx
标签: java json jackson jersey-2.0