【问题标题】:Spring RestTemplate - Specifying Jackson ViewSpring RestTemplate - 指定杰克逊视图
【发布时间】:2014-05-11 03:04:45
【问题描述】:

我有一个休息客户端类,它负责使用单个 Spring RestTemplate bean 调用休息服务来进行 HTTP 交换。这包括通过 MappingJacksonHttpMessageConverter.java 对 MyObject.java 进行序列化。

在创建 (POST) MyObject 时,我发送 5 个字段。

更新 (PUT) 一个 MyObject 时,我必须只发送 3 个(可变字段)。

我想要一个 DTO,MyObject,它在不同的情况下以不同的方式序列化:POST 与 PUT。加入Jackson Views,完美解决这个问题。

我的问题是 ObjectMapper 隐藏在 RestTemplate messageConverters 中,这使得很难在 REST 交换时添加关于我希望 ObjectMapper 在序列化时使用哪个视图的上下文。

有什么方法可以实现这一点,还是我需要 2 个不同的 RestTemplate,一个配置有用于创建的对象映射器,一个用于更新。这似乎有很多重复。

提前致谢

【问题讨论】:

  • 你能贴一些代码吗?
  • 今晚我看看能不能加点

标签: java json spring jackson


【解决方案1】:

您可以将 ObjectMapper 或 DTO 本身配置为在序列化期间忽略空值。然后只设置您要在 DTO 中传递的字段。

【讨论】:

  • 我真的不想那样做。 MyObject 有一个不可变的 ID 并且属于该对象,碰巧在更新序列化的上下文中,我不想发送它。目前我正在创建一个没有这些字段的 updateDto,它看起来有点乱。
猜你喜欢
  • 2016-10-23
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-17
  • 2017-07-01
相关资源
最近更新 更多