我正在尝试在Spring Boot应用程序中将嵌套的JSON反序列化为单个DTO。 JSON:
{"productId": "xyz123",
"description": "some_description",
"value": "123",
"boughtOnDate": "2020-05-20 14:22:58.000662",
"details": {
"material": "some_material",
/// another 20 entries
}
}
DTO:
@JsonIgnoreProperties(ignoreUnknown = true)
@Entity
public class Item {
@Id
private String productId;
private String description;
private Integer value;
private Timestamp boughtOnDate;
private String material;
// another 20 fields that are in the nested part of the json
// getters & setters
我目前的解决方案是像这样在Item类中解压缩嵌套的json:
@JsonProperty("details")
private void unpackNestedJson(Map<String, Object> details) {
this.material = (String) details.get("material");
// and another 20 lines for unpackacking the rest from the nested part
虽然unpackNestedJson可以很好地工作并且很好地完成了工作,但是它感到很麻烦,因为有很多数据要从JSON的嵌套部分中解包(JSON的“详细信息”之下和之上的所有条目都应作为字段进入Item实体类中只要)。我的问题是-将嵌套的JSON解压缩到单个DTO中是否有更简单/优雅的方法?任何帮助表示赞赏。
答案 0 :(得分:0)
不,我认为这是正确的方法,但是,如果您想探索另一个选择,则可以在Item内部使用带有Material属性的Details对象。然后,您可能只需要一些具有父DTO权限的getter / setter方法,就可以实现相同的行为。