我使用Jackson 2.5.2并且我有map<String,String>
默认情况下,杰克逊将其序列化为:
<MyObject>
<map>
<key1>value1</key1>
<key2 containing spaces>value2</key2 containing spaces>
<map>
</MyObject>
但我想要一个通用的xml标签:
<MyObject>
<map>
<entry key="key1">value1</entry>
<entry key="key2 containing spaces">value2</entry>
<map>
</MyObject>
通过这种方式,我的xml标签是通用的,可以使用xsd
进行验证这是我的测试
class MyObject {
Map map = new HashMap();
public Map getMap() { return map;}
}
// Test
ObjectMapper xmlMapper = new XmlMapper();
MyObject myObject = new MyObject();
myObject.getMap().put("key1","value1");
myObject.getMap().put("key2 containing spaces","value2");
System.out.println(xmlMapper.writeValueAsString(myObject));
是否有任何配置告诉Jackson序列化通用xml?
答案 0 :(得分:0)
您可能想要针对此问题提交错误报告:对属性名称执行的操作是将空格替换为其他违规字符(或剥离它们)。但是存在可靠地转换名称的问题;如果属性很容易(只是地图修改/剥离名称),但对于地图,它可能是也可能是不可能的。