亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將嵌套對象發送到 Spring POST

將嵌套對象發送到 Spring POST

繁花不似錦 2023-07-13 13:58:34
我有 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}彈簧端點:@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正確映射值的正確方法是什么?我是否需要添加注釋才能正確映射它們?
查看完整描述

3 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

您應該將以下注釋添加到 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

}


查看完整回答
反對 回復 2023-07-13
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

您的角度客戶端使用蛇盒。為了使 jackson 正確反序列化,您可以使用以下命令進行全局配置:

spring.jackson.property-naming-strategy=SNAKE_CASE

但是您也可以為特定的類配置它:

@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class DTO {
}


查看完整回答
反對 回復 2023-07-13
?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

正如已經提到的,您可以在類中使用 Jackson 屬性映射注釋DTO。

@JsonProperty("billing_address")
private BillingAddress billingAddress;

這意味著,在 json 中,屬性billing_address將被分配給billingAddress變量。


查看完整回答
反對 回復 2023-07-13
  • 3 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號