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

标签 java json spring spring-boot http-post

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

相关文章:

java - 将 li 列表从客户端传递到 Spring MVC Controller

java - Websphere Application Server v8 无法连接到服务器进程

json - 如何在 itemBuilder 中过滤 JSON 数据

javascript - 使用jquery获取json对象而不使用$.each

java - 在 Heroku 上运行使用 gradle 构建的 Spring 应用程序

java - 有没有最简单的方法将 Selenium 1.0 代码迁移到 WebDriver?

java:警告:迭代器是原始类型

json - 移动 jq 中的嵌套值

java - 无法在 spring mvc 中显示带有错误消息的同一页面

Spring Security 3.1 - 如何识别用户是否已经登录?