Loading...
Spring Framework Reference Documentation 7.0.2의 Jackson JSON의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Spring은 Jackson JSON library에 대한 지원을 제공합니다.
Spring WebFlux는
Jackson’s Serialization Views에 대한 내장 지원을 제공하며,
이를 통해 Object의 모든 field 중 일부만 렌더링할 수 있습니다. 이를
@ResponseBody 또는 ResponseEntity controller 메서드에서 사용하려면,
다음 예제에서 보듯이 Jackson의 @JsonView annotation을 사용하여
serialization view class를 활성화할 수 있습니다:
1@RestController 2public class UserController { 3 4 @GetMapping("/user") 5 @JsonView(User.WithoutPasswordView.class) 6 public User getUser() { 7 return new User("eric", "7!jd#h23"); 8 } 9} 10 11public class User { 12 13 public interface WithoutPasswordView {}; 14 public interface WithPasswordView extends WithoutPasswordView {}; 15 16 private String username; 17 private String password; 18 19 public User() { 20 } 21 22 public User(String username, String password) { 23 this.username = username; 24 this.password = password; 25 } 26 27 @JsonView(WithoutPasswordView.class) 28 public String getUsername() { 29 return this.username; 30 } 31 32 @JsonView(WithPasswordView.class) 33 public String getPassword() { 34 return this.password; 35 } 36}
1@RestController 2class UserController { 3 4 @GetMapping("/user") 5 @JsonView(User.WithoutPasswordView::class) 6 fun getUser(): User { 7 return User("eric", "7!jd#h23") 8 } 9} 10 11class User( 12 @JsonView(WithoutPasswordView::class) val username: String, 13 @JsonView(WithPasswordView::class) val password: String 14) { 15 interface WithoutPasswordView 16 interface WithPasswordView : WithoutPasswordView 17}
@JsonView는 view class array를 허용하지만 controller 메서드당 하나만 지정할 수 있습니다.<br>여러 view를 활성화해야 하는 경우 composite interface를 사용하십시오.
ResponseEntity
Model