java - 将嵌套对象发送到 Spring POST

标签 java spring spring-boot

我有 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_addressshipping_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/

相关文章:

spring - Gradle,Spring Boot,spring-boot-starter-data-jpa升级

java - spring boot 应用程序使用的端口号

java - 多个单词的字符串比较

java - 图像旋转Java

java - response.sendError 使用自定义过滤器抛出异常

java - Spring:获取具有特定参数的原型(prototype) bean 实例

javascript - Servlet 过滤器不允许在 jsp 文件中上传指向 js 库的链接

java - 陷入 while 循环/索引越界异常

java - 如何在 Spring JDBC ResultSetExtractor 中检查 ResultSet 是否为空?

java - 对象 ='statutProduits' 验证失败。错误计数 : 2