2016-08-03 43 views
-2

我需要将java对象转换为json。我做到这一点与ObjectMapper,像这样:如何将Java对象转换为Json并忽略Object上的ArrayList?

static final ObjectMapper mapper = new ObjectMapper(); ..... 
String newJsonStringEntity = mapper.writeValueAsString(bean); 

一切工作正常,但我想忽略的ArrayList转换成JSON,没有@JsonIgnore。如果可能,我想配置映射器?

有没有办法做到这一点?

+2

使用@JsonIgnore – Jens

+0

是的,这是一种选择。但是我想,如果有一个解决方案没有注释。也许我们在其他一些情况下该列表应该是Json对象。如果有可能,我想说映射器的“忽略ArrayList”? – zexco2

+1

@ zexco2:如果解决问题的正常,显而易见的方式不适合您的情况,您需要在您的问题中说。如果你能解释为什么你有这个不寻常的要求,这将有所帮助。你想排除所有ArrayList字段?你为什么想这么做? –

回答

1

,可以使用两个注释为:

  1. @JsonIgnore:这是用户会员级或方法级注释,其期望的属性,以排除一个接一个。 你可以把这个注解放到你的bean类中。
    实施例:

    @JsonIgnore 
    private ArrayList list; 
    
  2. @JsonIgnoreProperties是在类级注释和它预期要排除的特性将在字符串列表的形式来明确指出。
    例子:

    @JsonIgnoreProperties({"name list variable"}) 
    class BeanClass {} 
    
+0

这是很好的解决方案,但是如果我有成千上万个可能的对象需要从JavaObject转换为JsonObject,那么我需要在每个类中进行注释并在每个ArrayList字段上添加注释。因为,我不会说在一个地方,当转换任何对象时,忽略ArrayList – zexco2

0

你不字段要转换,不要使用值进行填充,然后使用GSON。 Gson忽略空值。这将解决您的问题