如何解决用Jackson反序列化嵌套JSON
我正在尝试在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中是否有更简单/优雅的方法?任何帮助表示赞赏。
解决方法
不,我认为这是正确的方法,但是,如果您想探索另一个选择,则可以在Item内部使用带有Material属性的Details对象。然后,您可能只需要一些具有父DTO权限的getter / setter方法,就可以实现相同的行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。