我正在尝试设置代码来使用 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/