У меня есть конкретная проблема с десериализацией JSON.Давайте получим такую структуру JSON:
{
"header":{
"objects":[
{"field":"value1"},
{"field":"value2"}
]
}
}
Структура JSON не может быть изменена, поскольку она поступает из сторонней системы.
Теперь давайте создадим простой POJO:
@JsonDeserialize(using=PojoDeserializer.class)
public class Pojo {
private string field;
//...getter, setter
}
Упомянутый PojoDeserializer принимает строку json {"field": "value"} и десериализует ее в экземпляр Pojo.Поэтому я могу просто выполнить десериализацию следующим образом:
Экземпляр Pojo = новый ObjectMapper (). ReadValue ("{\" field \ ": \" value \ "}", Pojo.class);
А вот и моя проблема.Давайте возьмем другой десериализатор PojosCollectionDeserializer, который берет упомянутую структуру и десериализует ее в коллекцию экземпляров Pojo.Я хотел бы использовать его аналогично предыдущему примеру:
Collection<Pojo> pojos = new ObjectMapper().readValue("{...}", Collection.class);
Но это не работает, поскольку не определено, что Collection следует создавать с использованием PojosCollectionDeserializer.Есть ли способ добиться этого?