【问题标题】:Spring multiple entity JSON serializersSpring 多实体 JSON 序列化器
【发布时间】: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


【解决方案1】:

我找到了解决方案。最好的方法是使用 ModelMapper 库。您可以简单地将实体映射到自定义类并序列化

【讨论】:

    猜你喜欢
    • 2012-08-20
    • 2021-09-27
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 2020-05-26
    • 2015-01-21
    • 2014-07-08
    • 1970-01-01
    相关资源
    最近更新 更多