首頁>技術>

Spring MVC支援Jackson的@JsonView註解來定製請求體和返回體的json。這個功能的實現和上一節@RestControllerAdvice例子類似,是透過JsonViewRequestBodyAdvice,JsonViewResponseBodyAdvice來實現的。它們是自動新增到IoC容器,而不是透過@RestControllerAdvice註冊的。

我們透過@JsonView在Person類中定義檢視:

@Setter@AllArgsConstructor@NoArgsConstructor@EqualsAndHashCode(exclude = {"name", "age"})public class Person {    public interface WithoutIdView {}; //1    public interface WithIdView extends WithoutIdView {}; //1    @NotNull(message = "id不能為空")    private Long id;    @Size(min = 3, max = 5, message = "name在3到5個字元之間")    private String name;    @Min(value = 18, message = "age不能低於18歲")    private Integer age;    @JsonView(WithIdView.class) //2    public Long getId() {        return id;    }    @JsonView(WithoutIdView.class)//2    public String getName() {        return name;    }    @JsonView(WithoutIdView.class)//2    public Integer getAge() {        return age;    }}
定義兩個介面作為檢視,WithIdView繼承WithoutId檢視;定製兩個檢視對應需展示的屬性。

我們在控制器中的檢驗:

@GetMapping("/jsonView")@JsonView(Person.WithoutIdView.class) //使用無id檢視public Person jsonView(@RequestBody Person person){    return person;}

9
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 如何接地氣地接入微前端?