我想要实现的是将 a 转换JsonNode为自定义反序列化器内的 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;
}
}
Run Code Online (Sandbox Code Playgroud)
(User是一个简单的类)
您可以像这样使用ObjectCodecin :JsonParser
jp.getCodec().treeToValue(root.get("user"), User.class)
Run Code Online (Sandbox Code Playgroud)
User这将根据任何其他现有的序列化规则返回您的对象。
感谢 @galcyurio 在Convert JsonNode into POJO中的评论:
您还可以在 StdDeserializer 中使用此方法:p.codec.treeToValue
| 归档时间: |
|
| 查看次数: |
1238 次 |
| 最近记录: |