0

我想扩展 ObjectNode 以便我可以有几个辅助方法来从 JSON 中获取几个特定字段。例如

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

但我遇到的问题是 ObjectMapper().readTree("<...my JSON here...>") 返回一个 JsonNode 对象,我显然无法将其转换为 MyNode。

并且没有使用另一个 JsonNode 的 ObjectNode 构造函数。将 JSON 的字符串表示形式转换为 MyNode 对象的最佳方法是什么?

4

1 回答 1

1

您需要创建自定义JsonNodeFactory(并使用 注册ObjectMapper),这应该允许您提供自定义实现——它们必须是子类;但您只需要创建自己的实例,然后反序列化器就可以填充它们。因此,您不需要使用复制构造函数或转换。相反,工厂被调用来创建新的空实例。

于 2012-10-27T00:00:53.600 回答