我有一个带有属性名称的xml标签,这些属性名称不限于某些特定的值,比如:
<to amount="345.00" service="service" purpose="rent" account="381"/>
字符串使用JacksonXML,我想将这些元素转换为Map<String,String>。我可以使用什么样的注解?
nzk0hqpo1#
我使用@JsonAnySetter注解将XML元素转换为Map<String, String>。下面是一个示例:
@JsonAnySetter
Map<String, String>
public class MyElement { private Map<String, String> attributes = new HashMap<>(); @JsonAnySetter public void addAttribute(String name, String value) { attributes.put(name, value); } public Map<String, String> getAttributes() { return attributes; } }
字符串在本例中,addAttribute方法使用@JsonAnySetter进行了注解,它告诉JacksonXML为任何在MyElement类中没有对应属性的XML属性调用此方法。然后,该方法将属性名称和值添加到属性Map中。要将XML元素转换为MyElement对象,可以使用XmlMapper类:
MyElement
XmlMapper
String xml = "<to amount=\"345.00\" service=\"service\" purpose=\"rent\" account=\"381\"/>"; XmlMapper xmlMapper = new XmlMapper(); MyElement element = xmlMapper.readValue(xml, MyElement.class);
型在XML化之后,MyElement对象中的属性Map将包含XML元素中的属性名称和值。
1条答案
按热度按时间nzk0hqpo1#
我使用
@JsonAnySetter
注解将XML元素转换为Map<String, String>
。下面是一个示例:字符串
在本例中,addAttribute方法使用
@JsonAnySetter
进行了注解,它告诉JacksonXML为任何在MyElement
类中没有对应属性的XML属性调用此方法。然后,该方法将属性名称和值添加到属性Map中。要将XML元素转换为
MyElement
对象,可以使用XmlMapper
类:型
在XML化之后,MyElement对象中的属性Map将包含XML元素中的属性名称和值。