我使用杰克逊库进行序列化/反序列化。
我有一个 Pojo 类,它有一个我希望成为的属性,Array
并且同时支持一个object
(如果可能的话,通过注释,例如:@Support(Actualite))。
@JsonProperty @Support(Actualite)
private ArrayList<Actualite> actualites;
有没有办法做到这一点 ?
我使用杰克逊库进行序列化/反序列化。
我有一个 Pojo 类,它有一个我希望成为的属性,Array
并且同时支持一个object
(如果可能的话,通过注释,例如:@Support(Actualite))。
@JsonProperty @Support(Actualite)
private ArrayList<Actualite> actualites;
有没有办法做到这一点 ?
我认为你要求的是杰克逊支持一个属性作为一个数组和一个对象,当只有一个值时,例如
{ people : { name : "sam" } }
和
{ people : [ { name : "sam" }, { name : "bob" } ] }
在这种情况下,您需要将其添加到您的映射器中:
mapper.configure(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED, true);
mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
春季编辑
如果您在 Spring for Android 中使用 RestTemplate,您应该能够执行以下操作:
// use false to turn off the default converts
RestTemplate restTemplate = new RestTemplate(false);
// create a new converter with the required features
MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter();
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED, true);
mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
converter.setObjectMapper(mapper);
// register that as your converter
restTemplate.getMessageConverters().add(converter);