我有一个类的对象列表,我将其作为json呈现给浏览器。现在,如果不满足某些条件,我想在json响应中排除对象中的某些属性。
因此,列表中的某些对象将存在这些属性,并且该列表的其他对象将不存在这些属性。
我如何实现这一目标?
我是一个春季启动应用程序。杰克逊正在被使用。
我使用Transformer将Entity转换为Bean,然后使用ResponseEntity将bean转换为json。
请建议可能的解决方案。
感谢。
答案 0 :(得分:3)
将这些值(您要排除的值)设为null,然后使用@JsonInclude
注释来抑制所有空值。
@JsonInclude(Include.NON_NULL) class Foo { String bar; }
您也可以排除特定字段的null
值(与排除整个对象的空值相反)
版本2.x + 中的public class Foo { private String field1; private String field2; @JsonInclude(Include.NON_NULL) private String field3; ... ... }
此注释的语法为:
@JsonInclude(JsonSerialize.Inclusion.NON_NULL)
或者您也可以设置全局选项:
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
在Spring项目中,objectMapper
是类ObjectMapper
的单例实例,您可以@Autowired
或从ApplicationContext获取