Jackson 不会将 XML 文件完全解析为 JSON

Jackson won't parse XML file to JSON entirely

我正在尝试使用 Jackson 将 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?

谢谢

我使用 readValue 将其用于 List

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

不确定为什么您的版本不起作用,readTree 和重复属性似乎存在问题。见this article,点5.1. Limitations