如何将Java对象转换为Json并忽略对象上的ArrayList?
我需要将java对象转换为json。我使用ObjectMapper实现这一点,如下所示:如何将Java对象转换为Json并忽略对象上的ArrayList?,java,json,arraylist,jsonobject,Java,Json,Arraylist,Jsonobject,我需要将java对象转换为json。我使用ObjectMapper实现这一点,如下所示: static final ObjectMapper mapper = new ObjectMapper(); ..... String newJsonStringEntity = mapper.writeValueAsString(bean); 一切正常,但我想忽略ArrayList以转换为json,而不使用@JsonIgnore。如果可能,我想配置映射器 有什么方法可以做到这一点吗?您可以使用两种注释:
static final ObjectMapper mapper = new ObjectMapper(); .....
String newJsonStringEntity = mapper.writeValueAsString(bean);
一切正常,但我想忽略ArrayList以转换为json,而不使用@JsonIgnore
。如果可能,我想配置映射器
有什么方法可以做到这一点吗?您可以使用两种注释:
@JsonIgnore
:这是成员级或方法级注释的用户,它希望逐个排除属性。
您可以将此注释放入bean类中。例如:
@JsonIgnoreProperties
是类级别的注释,它希望以字符串列表的形式显式指示要排除的属性。例如:
对于不想转换的字段,不要用值填充它们,然后使用gson。Gson忽略空值。这会解决你的问题是的,这是一个选择。但我想,如果有一个解决方案,不把注释。也许在其他一些情况下,我们应该将列表作为Json对象。我想说mapper的“忽略ArrayList”,如果有可能的话?@zexco2:如果解决问题的常规、明显的方法不适合你的情况,你需要在你的问题中这样说。如果你能解释一下为什么你也有这个不寻常的要求,这会有所帮助。是否要排除所有ArrayList字段?为什么要这样做?请阅读此帮助在一个java方法中,我将java对象转换为json,然后保存该字符串(用于以后的相同报告)。但是,我希望只使用Java对象的主字段构建json,从而忽略Java对象上的ArrayList。类似这样的东西,但对于ArrayList:mapper.setSerializationInclusion(Include.NON_NULL);这对于一些字段来说是不错的解决方案,但是如果我有数千个可能的对象需要从JavaObject转换为JsonObject,那么我需要进入每个类,并在每个ArrayList字段上添加注释。因为,我不会在一个地方说,当转换任何对象时,忽略ArrayList
@JsonIgnore
private ArrayList list;
@JsonIgnoreProperties({"name list variable"})
class BeanClass {}