Сериализаторы JSON с несколькими сущностями Spring

Я ищу способ создать несколько сериализаторов json для моей сущности. Я создал служебный слой, пользовательские серилизаторы, и теперь у меня проблема с реализацией этих вещей. Мой класс обслуживания выглядит так:

@Service
class TeamsService(@Autowired private val teamsRepository: TeamsRepository) : ITeamsService{

override fun findAll(): String? {
    var objectMapper = ObjectMapper()
    var simpleModule = SimpleModule()
    simpleModule.addSerializer(Teams::class.java, TeamsSerializer())
    objectMapper.registerModule(simpleModule)
    return objectMapper.writeValueAsString(teamsRepository.findAll())
}

}

И мой контроллер выглядит так:

@RestController
@RequestMapping("/v1")
class MainController(@Autowired private val teamsService: TeamsService) {

    @GetMapping("/teams")
    fun teams(): String? = teamsService.findAll()
}

Теперь у меня проблема с тем, что мой ответ потерял все заголовки и отображается как текст / обычный, а не текст / json, как это было до того, как я добавил настраиваемый сопоставитель. Я читал о проекциях, но не уверен, стоит ли их использовать. Я не хочу, чтобы в моем URL были параметры запроса.

Чего бы вы хотели достичь с помощью нескольких сериализаторов? Динамическая фильтрация?

Martin Frey 12.04.2018 11:00

Разный json для разных конечных точек.

Mikart Aerang 12.04.2018 11:03

Я хочу получить в ответ определенные поля от моих сущностей. На двух конечных точках мне нужно вернуть разные данные.

Mikart Aerang 12.04.2018 11:57
0
3
297
1

Ответы 1

Я нашел решение. Лучший способ сделать это - использовать библиотеку ModelMapper. Вы можете просто сопоставить сущность с пользовательскими классами и сериализовать

Другие вопросы по теме