我有 Angular 发送的这个 JSON 字符串:
{
"transaction_id": "1234",
"usage": "Test Usage",
"billing_address": {
"first_name": "name",
"last_name": "name",
"address1": "street 1234",
"zip_code": "11923"
},
"shipping_address": {
"first_name": "name",
"last_name": "name",
"address1": "street 1234",
"zip_code": "11923"
}
}
Java代码:
public class DTO {
private String transaction_id;
private String usage;
private BillingAddress billingAddress;
private ShippingAddress shippingAddress;
... getter/setter
}
public class BillingAddress {
private String firstName;
private String lastName;
private String address1;
private String zip_code;
... getter/setter
}
public class ShippingAddress {
private String firstName;
private String lastName;
private String address1;
private String zip_code;
... getter/setter
}
Spring 端点:
@PostMapping(value = "/{id}", consumes = { MediaType.APPLICATION_JSON_VALUE }, produces = { MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<?> handleWpfMessage(@PathVariable("id") id,
@RequestBody DTO data){
....
}
为 billing_address
和 shipping_address
映射内部对象以便正确映射值的正确方法是什么?我是否需要添加注释才能正确映射它们?
最佳答案
您应该将以下注释添加到您的 DTO 类中:
public class DTO {
private String transaction_id;
private String usage;
@JsonProperty("billing_address")
private BillingAddress billingAddress;
@JsonProperty("shipping_address")
private ShippingAddress shippingAddress;
... getter/setter
}
关于java - 将嵌套对象发送到 Spring POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57801227/