java - 手动构建节点树: how do I rename <ObjectNode> tags

标签 java xml jackson

我正在尝试设置代码来使用 jackson 创建节点树,然后可以使用该代码来编写 JSON 或 XML。我已经像这样手动创建了节点树:

XmlMapper NodeMap = new XmlMapper();

ObjectNode rootNode = NodeMap.createObjectNode();
ObjectNode currentNode = rootNode.putObject("Examples");
currentNode
    .put("Puppy", TRUE)
    .put("Apple", 2)
    .put("Jet", "Li");
currentNode = rootNode.putObject("Single");
currentNode.put("One", 1);

String writePath = "C:/users/itsameamario/Documents/basicXMLtest.xml";
NodeMap.writeValue(new File(writePath), rootNode);

我的输出是:

<?xml version="1.0"?>
<ObjectNode>
    <Examples>
        <Puppy>true</Puppy>
        <Apple>2</Apple>
        <Jet>Li</Jet>
    </Examples>
    <Single>
        <One>1</One>
    </Single>
</ObjectNode>

但是我想控制“ObjectNode”并将其重命名为更合适的名称。

当我像上面那样手动构建节点树时,如何将其重命名为我可以控制的内容

最佳答案

要重命名 rootNode,您需要使用 ObjectWriter。试试这个:

XmlMapper NodeMap = new XmlMapper();
final ObjectWriter writer = NodeMap.writer().withRootName("Pumpernickel"); //Rename as appropriate

ObjectNode rootNode = NodeMap.createObjectNode();
ObjectNode currentNode = rootNode.putObject("Examples");
currentNode
    .put("Puppy", true)
    .put("Apple", 2)
    .put("Jet", "Li");
currentNode = rootNode.putObject("Single");
currentNode.put("One", 1);

String writePath = "C:/users/itsameamario/Documents/basicXMLtest.xml";
writer.writeValue(new File(writePath), rootNode); // Make sure you replace this line too.

您的“ObjectNode”应替换为“Pumpernickel”。根据需要重命名。

关于java - 手动构建节点树: how do I rename <ObjectNode> tags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56551512/

相关文章:

java - 那里有任何 Ajax 窗口框架吗?

java - 如何通知正在运行的线程发生更改

java - 在 jasper 报告中设置报告区域的大小

C#:从 XML 实例化类

java - 如何使用 getter 的返回值,使用反射?

java - 如何序列化包含 LAZY 关联的 json

java - 如何使用 Spring 4 MVC 配置 Jackson Streaming API

java - JUnit - 使用参数中的对象测试类实例化

php - 通过 cURL 获取 RSS,在浏览器中正常,但在终端中出现 404 错误

java - @JsonIgnore 不忽略hibernate Entity中的字段