问题出在serialize
方法上(请参阅我的问题的代码部分)。一切看起来都很好,直到我的ComplexGraph
班级扩大到二十到三十个领域。当ComplexGraph
成为一个真正复杂的图时,通过jsonGenerator.writeNumberField("id", id)
.
问题:如何在serialize
方法中调用标准序列化?喜欢:
public class ComplexGraph implements JsonSerializable {
public void serialize(JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
if (isPrivate) return;
//HERE IS THE QUESTION
else jsonGenerator.standardSerialization(this);
}
}
代码:
public class ComplexGraph implements JsonSerializable {
private int id;
private String text;
private boolean isPrivate;
// getters and setters
@Override
public void serialize(JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
if (isPrivate) return;
jsonGenerator.writeStartObject();
//IT'S VERY UGLY WHEN complexGraph HAS MANY DEPENDENCIES!
jsonGenerator.writeNumberField("id", id);
jsonGenerator.writeStringField("text", text);
jsonGenerator.writeEndObject();
}
@Override
public void serializeWithType(JsonGenerator jsonGenerator, SerializerProvider serializerProvider, TypeSerializer typeSerializer) throws IOException, JsonProcessingException {
serialize(jsonGenerator, serializerProvider);
}
}