Jackson JSON
Spring 提供 Jackson JSON 程式庫的支援。
JSON 檢視
Spring WebFlux 提供對 Jackson 的序列化檢視的內建支援,允許僅呈現 Object
中所有欄位的子集。若要將其與 @ResponseBody
或 ResponseEntity
控制器方法搭配使用,您可以使用 Jackson 的 @JsonView
註解來啟動序列化檢視類別,如下列範例所示
-
Java
-
Kotlin
@RestController
public class UserController {
@GetMapping("/user")
@JsonView(User.WithoutPasswordView.class)
public User getUser() {
return new User("eric", "7!jd#h23");
}
}
public class User {
public interface WithoutPasswordView {};
public interface WithPasswordView extends WithoutPasswordView {};
private String username;
private String password;
public User() {
}
public User(String username, String password) {
this.username = username;
this.password = password;
}
@JsonView(WithoutPasswordView.class)
public String getUsername() {
return this.username;
}
@JsonView(WithPasswordView.class)
public String getPassword() {
return this.password;
}
}
@RestController
class UserController {
@GetMapping("/user")
@JsonView(User.WithoutPasswordView::class)
fun getUser(): User {
return User("eric", "7!jd#h23")
}
}
class User(
@JsonView(WithoutPasswordView::class) val username: String,
@JsonView(WithPasswordView::class) val password: String
) {
interface WithoutPasswordView
interface WithPasswordView : WithoutPasswordView
}
@JsonView 允許檢視類別的陣列,但您每個控制器方法只能指定一個。如果您需要啟動多個檢視,請使用複合介面。 |