java在尝试使用springboot从POST请求体读取嵌套JSON时获取null
我正在尝试使用springboot从请求体解析JSON:
下面是来自邮递员的请求(请求主体类型为application/json)——>
{
"CreditComplex": [{
"BCNR":"973",
"RelationshipName":"Pricing Company BV",
"Borrowers":[{
"Borrower ":[{
"BCNR" : "",
"CGC":"1174",
"UCR":"4+",
"PD":"0.03",
"AGIC":"1301",
"BookingLocation":"NL",
"SalesTurnover":"10000000000",
"Facilities": [{
"Facility": [{
"gfid " : "",
"limit": "1000000",
"producttype": "19",
"spread": "3.0000",
"commitmentFee": "0.3000",
"annualfee": "0",
"oneOfffee": "5000",
"lgd": "0.1800",
"outstanding": "500000"
}]
}]
}]
}]
}]}
Post方法处理来自springboot的请求
@RequestMapping(path = "/checkjson", method = RequestMethod.POST)
public ResponseEntity<CreditComplex> getBook(@RequestBody CreditComplex creditcomplex) {
return new ResponseEntity<>(creditcomplex, HttpStatus.OK);
}
我创建了以下类来映射JSON中的值:
public class CreditComplex {
private String BCNR;
private String RelationshipName;
List<Borrower> borrower;
使用所有字段的getter和setter
public class Borrowers {
List <Borrower> borrower;
使用所有字段的getter和setter
public class Borrower {
private String BCNR;
private String CGC;
private String UCR;
private String PD;
private String AGIC;
private String BookingLocation;
private String SalesTurnover;
private String Spread;
private String CommitmentFee;
private String AnnualFee;
private String OneOffFee;
private String LGD;
private String Outstanding;
List<Facilities> facilities;
使用所有字段的getter和setter
public class Facilities {
private List<Facility> facility;
使用所有字段的getter和setter
public class Facility {
private String gfid;
private String limit;
private String producttype;
private String spread;
private String commitmentfee;
private String annualfee;
private String oneOfffee;
private String lgd;
private String outstanding;
with getter and setter for all fields
Response expected是已映射到Credit复杂类但得到如下响应的实际请求json:
{
"borrower": null,
"bcnr": null,
"relationshipName": null
}
如有任何发现/帮助,将不胜感激
# 1 楼答案
你的JSON模式是错误的。预期字段和JSON请求正文之间存在命名差异
此外,也不需要这些复杂的包装,它们不会增加任何价值(如果不是这样的话,会使生成的JSON更难阅读)。只需重构代码,使其如下所示:
借款人:
信用综合体:
将其传递到对象映射器将生成以下JSON主体: