类似这种参数的请求,该怎么用dto接收?

{
 "Data":{
 "mobile":"1222222223",
 "code":202,
 "name":"2222"
 }
}

请问接口的DTO该如何定义?

================分割线===================

DTO定义如下

@Data
public class CallbackDTO {

    private DataInfo Data;

    @Data
    public class DataInfo {
        private String mobile;
        private Integer code;
        private String name;
    }
}

报错如下

  "timestamp": 1592473738332,
    "status": 400,
    "error": "Bad Request",
    "message": "JSON parse error: Unrecognized field \"Data\" (class com.xx.xx.modules.blockchain.dto.CallbackDTO), not marked as ignorable; nested exception is com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field \"Data\" (class com.xx.xx.modules.blockchain.dto.CallbackDTO), not marked as ignorable (one known property: \"data\"])\n at [Source: (PushbackInputStream); line: 2, column: 10] (through reference chain: com.xx.xx.modules.blockchain.dto.CallbackDTO[\"Data\"])",

================分割线===================
当请求参数为

{
 "Data":{
 "mobile":"1222222223",
 "code":202,
 "name":"2222"
 }
}

时会报如上错误。

当请求参数为

{
 "data":{
 "mobile":"1222222223",
 "code":202,
 "name":"2222"
 }
}

时(Data首字母大小写不一样),不会报错,请问代码该如何改动?

别问了。因为javeben设置值setData是找的名为data的,而你是Data是不可能映射的。这就是映射不成功的原因。除非你传来的数据结构的Data变为data

一个dto里面套一个dto,里面的dto设置 mobile这些字段

搞两个实体类不就好,直接到json解析,生成实体类