我在下面显示了我的代码片段,我试图将 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/