我在杰克逊的自定义反序列化器中遇到了问题.我想访问默认的序列化程序来填充我反序列化的对象.在人口之后,我将做一些自定义的事情,但首先我想用默认的jackson行为反序列化对象.
这是我目前的代码.
public class UserEventDeserializer extends StdDeserializer<User> {
private static final long serialVersionUID = 7923585097068641765L;
public UserEventDeserializer() {
super(User.class);
}
@Override
@Transactional
public User deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
ObjectCodec oc = jp.getCodec();
JsonNode node = oc.readTree(jp);
User deserializedUser = null;
deserializedUser = super.deserialize(jp, ctxt, new User());
// The previous line generates an exception java.lang.UnsupportedOperationException
// Because there is no implementation of the deserializer.
// I want a way to access the default spring deserializer for my …Run Code Online (Sandbox Code Playgroud) 我有一些类A,B,C它们都继承自BaseClass类.
我有一个String json,它包含A,B,C或BaseClass的json表示.
我想有一些方法将此String反序列化为BaseClass(多态反序列化).像这样的东西
BaseClass base = ObjectMapper.readValue(jsonString, BaseClass.class);
Run Code Online (Sandbox Code Playgroud)
jsonString 可以是A,B,C或BaseClass中任何一个的Json String表示.