Я думаю, что вы ищете концепцию JsonView
: в некоторых случаях вы хотите сериализовать набор атрибутов, а в некоторых других случаях вы хотите сериализовать (немного) другой набор атрибутов.
Посмотрите этот превосходный учебник , он объясняет все, даже использование Spring MVC.
Создание классов для аннотирования полей:
public class Views {
public static class Public {
}
public static class Internal extends Public {
}
}
Аннотируйте поля:
public class Item {
@JsonView(Views.Public.class)
public int id;
@JsonView(Views.Public.class)
public int drawnum;
@JsonView(Views.Internal.class)
public String address;
}
В контроллере, если вы хотите сериализовать только "общие" свойства;
@JsonView(Views.Public.class)
@RequestMapping("/items/{id}")
public Item publicItem(@PathVariable int id) {
Результат: {"id":2,"drawnum":5}
В другом контроллере, если вы хотите, чтобы все свойства были сериализованы;
@JsonView(Views.Internal.class)
@RequestMapping("/items/{id}")
public Item internalItem(@PathVariable int id) {
Результат: {"id":2,"drawnum":5,"address":"My address"}