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