2012-10-26 86 views
0

我想要扩展ObjectNode,这样我可以有几个帮助器方法从JSON获取几个特定的​​字段。例如从杰克逊的ObjectNode创建一个继承的自定义类

public class MyNode extends ObjectNode { 
    public void Long getTimestamp() { 
    return this.get(HEADER).get(TIMESTAMP).asLong(); 
    } 
} 

但是这个问题我已经是ObjectMapper()。readTree( “< ...我在这里的JSON ...>”)返回一个JsonNode对象,我显然不能转换为MYNODE。

而且没有构造ObjectNode的另一个JsonNode。将我的JSON的字符串表示转换为MyNode对象的最佳方法是什么?

回答

1

您需要创建自定义JsonNodeFactory(并将其注册为ObjectMapper),并且应该允许您提供自定义实现 - 它们必须是子类;但您只需创建自己的实例,然后反序列化程序就可以填充它们。所以你不需要使用拷贝构造函数或者转换。而是调用工厂来创建新的空实例。