我的Spring REST控制器需要映射一个像这样的对象参数。
{
"batchId": 43091,
"domain": "XX",
"code": "XXX",
"effectiveDate": "2020-02-13",
"status": "Y",
"result": [{"ruleName":"name",...]}]
}
我不知道该如何用DTO来转换这个数据 到目前为止,我有的东西看起来是这样的。
@Data
@NoArgsConstructor
@EqualsAndHashCode
public class ValidationResult {
private String result;
private String status;
private String batchId;
private String domain;
private String code;
private String effectiveDate;
}
但是... result
,其中包含嵌入的JSON,总是空的。我并不关心这个JSON被映射,因为我把它作为JSON类型存储在数据库(Postgresql)中。但我需要将它声明为什么Java类型才能让控制器转换它?我试着把它变成一个 javax.json.JsonObject
但失败了。
对于这些json输入,我们总是将其映射到特定的类。也就是说,在你的例子中,结果可以是一个类,它本身就包含给定的字段 "ruleName "和它们的类型。然后你的Validaton Result包含一个私有的Result结果。如果命名惯例是正确的,使用的映射器将能够转换和映射响应到类和它的属性。