Micronaut JSON 序列化 - 使用 getters 而不是字段

Micronaut JSON serialization - use getters instead of fields

使用 Spring MVC 时,默认情况下,每当您的 @RestControllers return 一个对象时,它都会根据其 getter 而不是其字段序列化为 JSON。

有什么方法可以将 Micronaut 配置为也像这样运行吗?示例:

public class User {

  private String email;
  private String password;

  public String getEmail() {
    return email;
  }

}

@Controller
public class UserController {

  public User getUser() {
    ...
  }

}

所以这应该 return:

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

而不是这个:

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

我知道 Jackson 的注释,但是,我只是想了解是否可以将 Micronaut 配置为这样的行为。

谢谢。

它应该按预期工作,它不应该显示密码。如果有 no getter (password).

则不显示任何字段

从没有任何功能的项目开始:micronaut launch

然后

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"
}