【发布时间】:2017-07-10 13:41:29
【问题描述】:
我有一个让控制器返回 Java 对象的 Spring Web 服务。我已将我的服务设置为使用@RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE),以便响应在 Json 中。据我了解,Spring 使用 Jackson 将 Java 对象序列化为 Json。我有一个要为其创建自定义 json 序列化程序的类。我想使用自定义序列化程序的唯一原因是避免将 Object 的特定属性序列化为 API 响应的一部分。
例如:
我的控制器方法返回Foo。 Spring 将序列化所有属性作为 API 响应的一部分。但是,我想排除rawBar。
public final class Foo{
Bar propBar;
Bar intermediateBar;
Bar rawBar;
FooBar status;
}
我见过使用StdSerializer<T> 创建自定义序列化程序的示例。但是,这样做意味着我必须编写自定义代码来序列化其他属性。有没有办法排除特定属性?此外,Foo 是第三方库的一部分,因此无法更改该类。是否可以为Foo 创建我自己的序列化程序,然后使用默认序列化程序来序列化除rawBar 之外的所有属性?
【问题讨论】:
标签: spring serialization jackson