requesbodys.java_Json使用spring-boot向java对象请求body

我有以下JSON请求

{

"FreightCalculationRequest": {

"Products": [

{

"sku": "123",

"size": "S",

"quantity": "1",

"shipAlone": "True",

"itemType": "Shoe"

},

{

"sku": "123",

"size": "S",

"quantity": "1",

"shipAlone": "True",

"itemType": "Shoe"

}

],

"ShipToZip": "54452",

"IsCommercial": "True"

}

}

我试图将此请求作为自定义java对象发送到API控制器方法,然后将该对象作为json格式的字符串返回.我通过邮递员得到回复,但是对于产品,并且shiptoZip我得到一个null,而对于isCommercial,我得到了错误,但我甚至没有在请求中作为isCommercial的值.这是怎么回事?我不知道如何在Java中很好地调试,因为我基本上每次都通过键入mvn spring-boot来检查我的应用程序:start

这是我的对象,我将返回并用作控制器方法的参数.

public class FreightCalculationRequest {

private Product[] Products;

private String ShipToZip;

private boolean IsCommercial;

public Product[] getProducts() { return this.Products; }

public void setProducts(Product[] itemsRequest) { this.Products = itemsRequest; }

public String getShipToZip() { return this.ShipToZip; }

public void setShipToZip(String ShipToZip) { this.ShipToZip = ShipToZip; }

public boolean getIsCommercial() { return this.IsCommercial; }

public void setIsCommercial(boolean IsCommercial) { this.IsCommercial = IsCommercial; }

}

这是我调用的控制器方法

@RequestMapping(value = "/test", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)

FreightCalculationRequest TestCall(@RequestBody FreightCalculationRequest calculationRequest) {

return calculationRequest;

}

为什么我的回复没有显示与请求相同的回复.

更新:

我将@JsonProperty添加到我的变量中,现在响应看起来像这样

{

"isCommercial": false,

"shipToZip": null,

"products": null,

"Products": null,

"ShipToZip": null,

"IsCommercial": false

}

丢失了一点,也意识到我可以在mvn运行时保存我的更改,它会自动编译更改

更新:

因此,当我最初在json响应中删除“FreightCalculationRequest”的包装时,我的json中的itemType实际上是抛出一个错误,所以我认为这是问题,但是itemType实际上是代码中的一个对象所以它是由于我而不是放入一个有效的属性并彻底阅读json解析错误,我有两个解决方案,将响应包装在另一个类中,或者删除FreightCalculationWrapping.

我还了解到我需要添加@JsonProperty来映射json

谢谢你

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值