В процессе десериализации (как я понимаю, это процесс преобразования данных JSON в объект Java), как я могу сказать Джексону, что когда он читает объект, который не содержит данных, его следует игнорировать?Как сказать Джексону игнорировать пустой объект во время десериализации?
Я использую Джексон 2.6.6 и 4.2.6 Spring
В данных JSON, полученный мой контроллер выглядит следующим образом:
{
"id": 2,
"description": "A description",
"containedObject": {}
}
Проблема в том, что объект «containedObject» интерпретируется как есть, и он создается. Поэтому, как только мой контроллер считывает данные JSON, он создает экземпляр типа объекта ContainedObject, но мне нужно, чтобы это было null.
Самое простое и быстрое решение будет то, что в JSON полученных данных, это значение будет нулевым, как это:
{
"id": 2,
"description": "A description",
"containedObject": null
}
Но это не представляется возможным, так как я не в состоянии контролировать данные JSON, что отправляется мне.
Есть ли аннотация (like this explained here), которая работает для процесса десериализации и может быть полезна в моей ситуации?
Я оставляю представление моих классов для получения дополнительной информации:
Моего класса сущностей выглядят следующим образом:
public class Entity {
private long id;
private String description;
private ContainedObject containedObject;
//Contructor, getters and setters omitted
}
И мой содержали класс объектов следующим образом:
public class ContainedObject {
private long contObjId;
private String aString;
//Contructor, getters and setters omitted
}
Это было бы моим решением, если я все еще не найду аннотацию, которая выполняет эту работу. Спасибо! –
Это решение, которое я использовал широко. Насколько я знаю, никакая аннотация не будет делать то, что вы достигнете с помощью этого Deserializer. – Mechkov
@MauricioCampagner Не забудьте принять ответ, который был наиболее полезен для вашего вопроса. Спасибо – Mechkov