【发布时间】:2021-10-18 02:11:04
【问题描述】:
我在 SpringBoot 的上下文中遇到了这个问题,但它似乎只是一个 Jackson 问题。
我有一个包含多个字段的 DataObject。 DataObject 包含在模型中。 DataObject 的所有字段都是可选的。但是如果所有字段都为空,那么我希望 dataoObject 本身为空,但这似乎不是它的工作方式。
这是我的示例代码
@Getter
@ToString
@NoArgsConstructor
public class TestContract {
private String field1;
@JsonUnwrapped
@Valid
private DataObject dataObject;
public static void main(String[] args) throws JsonProcessingException {
//language=JSON
String json = "{ \"field1\" : \"value1\"}";
ObjectMapper mapper = new ObjectMapper();
TestContract contract = mapper.readValue(json, TestContract.class);
System.out.println("contract: " + contract);
}
}
@Getter
@NoArgsConstructor
@ToString
public class DataObject {
private String nested1;
private String nested2;
}
我最终得到的输出是
contract: TestContract(field1=value1, dataObject=DataObject(nested1=null, nested2=null))
有没有办法让对象最终为空?
【问题讨论】:
标签: json spring-boot jackson