猿问

在自定义反序列化器中将 JsonNode 转换为 POJO

我想要实现的是JsonNode在自定义反序列化器中将 a 转换为 POJO(即反序列化)。

大多数其他答案,比如这里的这个,建议使用ObjectMapper,但该deserialize方法具体没有对象映射器,因此解决方案不起作用。

这是我的自定义反序列化器:

class AccountDeserializer extends StdDeserializer<Input> {

    public AccountDeserializer() {

        this(null);

    }


    public AccountDeserializer(Class<?> vc) {

        super(vc);

    }


    @Override

    public Account deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {

        JsonNode root = jp.getCodec().readTree(jp);

        User user = root.get("user").????;


        // other statements


        Account acc = new Account(user);

        return acc;

    }

}

(User是一个简单的类)


慕勒3428872
浏览 72回答 1
1回答

慕妹3146593

您可以像这样使用ObjectCodecin :JsonParserjp.getCodec().treeToValue(root.get("user"),&nbsp;User.class)这将User根据任何其他现有的序列化规则将您的对象还给您。感谢@galcyurio 在将 JsonNode 转换为 POJO 中的评论:您还可以在 StdDeserializer 中使用此方法:p.codec.treeToValue
随时随地看视频慕课网APP

相关分类

Java
我要回答