【问题标题】:How to create an empty JsonNode?如何创建一个空的 JsonNode?
【发布时间】:2022-11-11 08:01:27
【问题描述】:

我正在尝试将一个空节点设置为其他一些 json 节点的值。 new JsonNode() 没有工作,因为它受到保护。

例子:

JsonNode jsonNode = externalSource(); // <--This is the parent json node
((ObjectNode) jsonNode).set("fieldName", new JsonNode()); // <-- I want to replace the existing 
// value of fieldName with an empty one

这目前不起作用。

我们有什么特别的方法可以做到这一点吗?

【问题讨论】:

  • 你好,到目前为止你试过了吗? ObjectNode node = mapper.createObjectNode(); 还有你的意思是它没有工作?
  • 构造函数不是公共的,它是受保护的。所以客户端不能直接使用它来实例化JsonNode。它只能由扩展JsonNode 类的子类使用。
  • 为避免误解,您有一个已经存在的 jsonnode,并且您想向其中添加一个新字段,例如 "empty": {}?
  • 我想我找到了解决方案。可以使用对象映射器的getNodeFactory 然后textNode(...) 等来创建JsonNodes

标签: java jackson jsonnode


【解决方案1】:
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.createObjectNode();

或者你也可以像你在上面的评论中说的那样做,

JsonNode node = JsonNodeFactory.instance.objectNode();

之后,您可以映射值,

JsonNode node = mapper.valueToTree(fromValue);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    相关资源
    最近更新 更多