【问题标题】:can't response 'isOk' field in spring boot春季启动时无法响应“isOk”字段
【发布时间】:2019-09-21 15:54:12
【问题描述】:

我正在使用 Spring 启动创建 CreateOrUpdateProduct API。我想返回给消费者两个字段('message & isOk')。但是当我执行这个 API 时,我收到了 ('message & ok') 字段。发生了什么?请扩大我。提前谢谢!

这是我的功能

public ResponseBase CreateOrUpdateProduct(Product product) {

        ....
        return responseBase;
    }
public class ResponseBase {
boolean isOk;
public boolean isOk() {
    return isOk;
}
public void setOk(boolean isOk) {
    this.isOk = isOk;
}
public String getMessage() {
    return message;
}
public void setMessage(String message) {
    this.message = message;
}
String message;
}

我收到了

{
  "message":null,
  "ok": true
}

【问题讨论】:

    标签: java spring-boot


    【解决方案1】:

    您应该将您的 getter 重命名为 getIsOk()

    它将返回预期的答案:

    {
      "message":null,
      "isOk": true
    }
    

    【讨论】:

      【解决方案2】:

      我想你的答案就在这里:Jackson renames boolean field by removing is

      Jackson(序列化程序)将“isOk”视为名为“ok”的布尔变量的获取方法。这是开发人员用于布尔变量的 get 方法的常见命名模式。

      编辑:

      您不应该将方法的名称设置为“getIsOk”,因为这不符合布尔变量的 get 方法的命名约定。这不是一个很好的解决方案,但它会起作用。

      Jackson 为您提供了一个注解,用于设置序列化变量的名称:

      @JsonProperty(value="isOk")
      public boolean isOk() {
        return isOk;
      }
      

      【讨论】:

        猜你喜欢
        • 2017-06-19
        • 2019-07-07
        • 1970-01-01
        • 2019-10-21
        • 2017-04-04
        • 2015-08-31
        • 2018-09-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多