【发布时间】:2013-03-06 05:37:35
【问题描述】:
是否可以使用 Jackson 来处理基于名称空间的重复 xml 标签?
下面的代码抛出一个 JsonMappingException : Multiple fields表示属性“url”
private final ObjectMapper xmlMapper = new XmlMapper();
private static final String xml =
"<example xmlns:test='http://test.com/'>" +
"<test:url>www.namespace.com'</test:url>" +
"<url>www.url.com'</url>" +
"</example>";
@Test
public void parseXml() throws Exception {
Example example = xmlMapper.readValue(xml, Example.class);
assert example.namespaceUrl.equals("www.namespace.com");
}
public static class Example {
@JsonProperty("url")
public String namespaceUrl;
@JsonProperty("url")
public String url;
}
非常感谢!
【问题讨论】:
-
您可以使用 JAXB (JSR-222) 实现轻松处理此用例:blog.bdoughan.com/2010/08/jaxb-namespaces.html
-
怎么样?我的包信息中有 javax.xml.bind.annotation.XmlNsForm.QUALIFIED。杰克逊仍然在爆炸,因为它看到了两个同名的元素。有趣的是,元素名称甚至不会出现在 json 有效负载上,所以这真的无关紧要
标签: java xml annotations jackson