micronaut json序列化-使用getter而不是字段

eufgjt7s  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(353)

在使用springmvc时,默认情况下,每当@restcontrollers返回一个对象时,它都将被序列化为基于其getter的json,而不是基于其字段。
有没有什么方法可以让micronaut也像这样工作?例子:

public class User {

  private String email;
  private String password;

  public String getEmail() {
    return email;
  }

}

@Controller
public class UserController {

  public User getUser() {
    ...
  }

}

所以这应该是:

{
  "email": "email@addres.com"
}

而不是这样:

{
  "email": "email@addres.com",
  "password": "pass"
}

我知道jackson的注解,不过,我只是想了解是否有可能将micronaut配置成这样。
谢谢。

c90pui9n

c90pui9n1#

它应该按预期工作,不应该显示密码。如果没有getter(密码),则不显示任何字段。
从一个没有任何功能的项目开始:micronaut启动
然后

import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;
import io.micronaut.runtime.Micronaut;

public class Application {

    public static void main(String[] args) {
        Micronaut.run(Application.class, args);
    }
}

class User {
    String email;
    String password;

    public User(String email,String password) {
        this.email = email;
        this.password = password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getEmail() {
        return email;
    }
}

@Controller
class UserController {

    @Get
    public User getUser() {
        return new User("email@micronaut.io","secret");
    }

}
``` `http://localhost:8080` 结果:

{
"email": "email@address.com"
}

相关问题