2012-10-26 71 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),並且應該允許您提供自定義實現 - 它們必須是子類;但您只需創建自己的實例,然後反序列化程序就可以填充它們。所以你不需要使用拷貝構造函數或者轉換。而是調用工廠來創建新的空實例。