我有一个简单的测试用例XML文档,其父文档包含一个包含两个子元素的列表。我正在尝试使用Jackson XmlMapper解析此文档,但是无法产生预期的结果,该结果是带有两个子元素的JSON数组。
这是测试代码:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
public class Test
{
public static void main(String[] args) throws Exception
{
String xml =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" +
" <parent name=\"P1\">" +
" <children>" +
" <child name=\"C1\"/>" +
" <child name=\"C2\"/>" +
" </children>" +
" </parent>" +
" </xml>";
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.setDefaultUseWrapper(true);
JsonNode node = xmlMapper.readTree(xml.getBytes());
System.out.println(node);
}
}
运行时输出为:
{"name":"P1","children":{"child":{"name":"C2"}}}
不是预期的:
{"name": "P1", "children": [{"child": {"name": "C1"}},{"child": {"name": "C2"}}]}
或
{"name": "P1", "children": [{"name": "C1"},{"name": "C2"}]}
使用XmlMapper是否可以实现?如果没有,杰克逊还有其他方法可以解决吗?