Джексон не будет анализировать XML-файл в JSON полностью - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь разобрать строку XML в JSON, используя Джексона.

В данный момент я использую эту строку:

String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                " <rootNode>\n" +
                "    <data>\n" +
                "        <cityCode>R8</cityCode>\n" +
                "        <place>\n" +
                "            <code>01</code>\n" +
                "        </place>\n" +
                "    </data>\n" +
                "    <data>\n" +
                "        <cityCode>R9</cityCode>\n" +
                "        <place>\n" +
                "            <code>02</code>\n" +
                "        </place>\n" +
                "    </data>\n" +
                "</rootNode>";

Вот код, который я использую:

XmlMapper xmlMapper = new XmlMapper();
JsonNode node = xmlMapper.readTree(xml);
ObjectMapper jsonMapper = new ObjectMapper();
String json = jsonMapper.writeValueAsString(node)

Но парсер, кажется, получает только один узел:

{"data":{"cityCode":"R9","place":{"code":"02"}}}

Как мне преобразовать все узлы в JSON?

Спасибо

1 Ответ

1 голос
/ 18 апреля 2019

Я работаю, используя readValue в List

XmlMapper xmlMapper = new XmlMapper();
List list = xmlMapper.readValue(xml, List.class);
ObjectMapper jsonMapper = new ObjectMapper();
String json = jsonMapper.writeValueAsString(list);

Не уверен, почему ваша версия не работает, похоже, есть проблемы с readTree и повторяющимися атрибутами.См. эту статью , пункт 5.1. Limitations

...