在反序列化过程中(据我了解,这是将JSON数据转换为Java对象的过程),我该如何告诉Jackson,当它读取一个不包含任何数据的对象时,应该忽略它?
我正在使用Jackson 2.6.6和Spring 4.2.6。
由我的控制器接收的JSON数据如下:
{
"id": 2,
"description": "A description",
"containedObject": {}
}
问题在于“containedObject”对象被直接解释并实例化。因此,一旦控制器读取此JSON数据,它就会生成一个ContainedObject对象类型的实例,但我需要它为空而不是非空。
最简单和最快速的解决方案是,在接收到的JSON数据中,将该值设为null,如下所示:
{
"id": 2,
"description": "A description",
"containedObject": null
}
但是由于我无法控制发送给我的JSON数据,所以这是不可能的。
是否有一种像这里解释的注释(https://dev59.com/zGQo5IYBdhLWcg3wZelg)可以用于反序列化过程,并且在我的情况下可能会有帮助?
我留下我的类的表示以获取更多信息:
我的实体类如下:
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
}