【发布时间】:2018-08-22 21:04:30
【问题描述】:
我有一个类,我无法控制它的来源:
public class SomeClassImpl implements SomeClass {
private SomeField someFiled; // Not serializable
... // Some other fields that are serializable
}
所以这个类不完全是Serializable,当我尝试使用Spring Boot将它序列化为json时遇到StackOverflowError@ResponseBody。
我有两个控制器方法:
@ResponseBody public SomeClassImpl get();
@ResponseBody public SomeOtherClass find();
我可以控制SomeOtherClass 的来源,其中包括SomeClass 作为属性。
我不知道如何使用@JsonIgnore 注释忽略字段,我可能需要控制源。我可以用注释做的是我可以忽略来自SomeOtherClass 的SomeClass 属性,这不会帮助上面的第一种方法。所以我决定实现JsonSerializer<SomeClassImpl>:
@Override
public void serialize(SomeClassImpl someClass, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
// I need to write all fields except some
}
或者我可以用注释来处理这个吗?如果是怎么办?谢谢。
【问题讨论】:
标签: java spring-boot serialization jackson