Я пытаюсь настроить код для создания дерева узлов, используя Джексона, который затем можно использовать для написания JSON или XML. Я могу заставить 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 xml = rootNode.toString();
чтобы получить
{"Examples":{"Puppy":true,"Apple":2,"Jet":"Li"},"Single":{"One":1}}
, который показывает, что дерево было построено правильно, но я надеялся, что оно выведет XML, потому что я присоединяю дерево к XmlMapper. К сожалению, одного этого недостаточно.
Я знаю, что могу взять другой объект и сделать что-то вроде
XmlMapper XMap = new XmlMapper();
XMap.writeValue(new File(writePath), objectToBeConverted);
чтобы получить XML, но я хочу использовать дерево узлов выше, а .writevalue, похоже, не работает с узлами.
Как бы я взял вышеприведенное дерево и вывод (в строку или файл) в виде XML? Это возможно или мне не повезло с этим методом?
РЕДАКТИРОВАТЬ: я использую Джексон версии 2.9.2
РЕДАКТИРОВАТЬ 2: Оказывается, у меня было несколько версий перекрытия Джексона, как упоминает Андрей в комментариях под его ответом.