Спринг и Джексон Джсон: сериализация двух разных наборов полей - PullRequest
1 голос
/ 28 сентября 2011

У меня есть интерфейс классификаций, аннотированный @JsonAutoDetect с Visibility.NONE, поэтому я могу выбрать отдельные геттеры для сериализации с аннотацией @JsonSerialize

@JsonAutoDetect(getterVisibility = Visibility.NONE)
public interface Classified {

    @JsonSerialize
    String getModel();

Пока здесь нет проблем, иКогда я возвращаю Классифицированную с аннотацией @ResponseBody из моего @Controller, он возвращает ожидаемый JSON:

    @RequestMapping(value = "/classified/{idClassified}", method = RequestMethod.GET)
    @ResponseBody
    public final Classified getClassified(@PathVariable final int idClassified) {

Однако, когда я возвращаю Список объявлений, я хотел бы вернуть меньший набор получателей,хотя со следующей подписью, очевидно, он возвращает все помеченные получатели:

@RequestMapping(value = "/classified", method = RequestMethod.GET)
@ResponseBody
public final List<Classified> searchClassified(@RequestParam final int idBrand,
    @RequestParam final String priceMax, @RequestParam final int page) {

Я не знаю, как вернуть меньшее подмножество классифицированных получателей в каждом элементе списка.

Ответы [ 2 ]

1 голос
/ 28 сентября 2011

Проверьте " свойства фильтрации ", в которой перечислено несколько способов изменить сериализацию.Я предполагаю, что Json Views может быть самым простым;может использовать один меньший вид, а затем режим по умолчанию «все», когда вид не определен (по умолчанию тогда сериализуются все свойства).

1 голос
/ 28 сентября 2011

"вернуть меньший набор получателей"

Если вы хотите уменьшить количество элементов в списке, измените бизнес-логику в методе контроллера searchClassified.

Если вы хотите уменьшить число доступных общедоступных методов получения для каждого элемента, вы можете создать интерфейс, который реализует только подмножество исходных элементов получения, и вместо этого вернуть их список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...