【发布时间】:2014-04-01 19:51:54
【问题描述】:
我想在 Jackson 序列化器中序列化子对象。
所以我有一个像这样的对象:
@JsonSerialize(using = StateSerializer.class)
public class State {
...
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JsonProperty(value = "d", required = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonSerialize(using = StateDefinitionSerializer.class)
private StateDefinition definition;
...
}
在我的 StateSerializer 中,我想使用自己的名为 StateDefinitionSerializer 的序列化器来序列化我的 StateDefinition:
public class StateSerializer extends JsonSerializer<State> {
@Override
public void serialize(State state, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
...
jsonGenerator.writeObject(state.getDefinition());
但是我最终在杰克逊 DefaultSerializerProvider 中得到了一个 IOException:
} catch (IOException ioe) { // As per [JACKSON-99], pass IOException and subtypes as-is
throw ioe;
}
关于如何解决这个问题的任何想法? :)
非常感谢所有帮助/cmets。
祝你好运,
乔辰
【问题讨论】: