gpt4 book ai didi

java - @Requestbody 没有获取我的 JSON 对象 Spring-Boot

转载 作者:行者123 更新时间:2023-12-01 20:16:32 26 4
gpt4 key购买 nike

我在下面显示了我的代码片段,我试图将 json obj 作为 Reuestbody 发送,但我的 Controller 无法分配请求的值。

请求的 JSON 对象

{
"Request":
{
"ReferenceNumber" : "ILT06240123201694516287",
"B_Code" : 1,
"B_Code":"888asdad88",
"Request":"11111111111111111"
}
}

Controller

@RequestMapping(value="/GetAccountDetails",method = RequestMethod.POST)
public ResponseEntity<AccountListResponse> GetAccountDetails(@RequestBody @Valid CBSAccountRequest cbsAccountReq
,BindingResult result) {
if(result.hasErrors()) {
throw new InvalidException("Not Valid",result);
}
else {
AccountListResponse accountListResponse=new AccountListResponse();
return new ResponseEntity<AccountListResponse>(accountListResponse, HttpStatus.OK);
}
}

波乔

public class CBSAccountRequest {

@NotNull
@Size(min=25,max=25,message="Reference number should have 25 characters")
private String ReferenceNumber;
@NotNull
@Digits(integer=1,fraction = 0 )
private int B_Code;
@NotNull
@Size(min=5,max=5, message="Invalid Branch Code")
private String B_Code;
@NotNull
@Size(min=17,max=17 ,message="Invalid Account Number")
private String Request;
//getters and setters
}

由于@Valid,我遇到了异常。我遇到了很多与之相关的问题,但没有一个对我有用。我预测该问题可能是由于 JSON 对象结构而发生的。我也尝试过下面的对象,但也不起作用。

{
"ReferenceNumber" : "ILT06240123201694516287",
"B_Code" : 1,
"B_Code":"888asdad88",
"Request":"11111111111111111"
}

最佳答案

在我看来,您发送的 JSON 请求的结构错误。在 JSON 中,外部“Request”元素是多余的。尝试发送以下请求:

{
"ReferenceNumber" : "ILT06240123201694516287",
"B_Code" : 1,
"B_Code":"888asdad88",
"Request":"11111111111111111"
}

顺便说一句,作为一个建议。您可以对字段使用 Java 命名约定,并且仍然可以使用 @JsonProperty 注释将“B_Code”之类的名称映射到它们:

@JsonProperty("B_Code")
String bCode;

关于java - @Requestbody 没有获取我的 JSON 对象 Spring-Boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45699563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com