【发布时间】:2018-09-22 08:19:38
【问题描述】:
我正在寻找一种方法来为我的实体创建多个 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()
}
现在我遇到的问题是我的响应丢失了所有标题并显示为 text/plain 而不是 text/json,就像我添加自定义映射器之前一样。 我正在阅读有关预测的信息,但我不确定是否应该使用它们。我不想在我的 url 中有查询参数。
【问题讨论】:
-
你想用多个序列化器实现什么?动态过滤?
-
不同端点的不同json。
-
我希望从我的实体中获得特定字段作为响应。在两个端点上,我需要返回不同的数据。
标签: spring hibernate spring-boot jackson kotlin