【问题标题】:Jackson xml serialize map that key contains whitespaceJackson xml序列化该键包含空格的映射
【发布时间】:2016-06-20 01:40:10
【问题描述】:

我使用 Jackson 2.5.2,我有一个 map<String,String>

默认情况下,Jackson 将其序列化为:

<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?

【问题讨论】:

    标签: xml generics dictionary serialization jackson


    【解决方案1】:

    您可能需要针对此问题提交错误报告:对属性名称所做的就是将诸如空格之类的违规字符替换为其他字符(或删除它们)。但是存在可靠地将名称转换回来的问题;如果属性足够简单(只需映射修改/剥离的名称),但对于 Maps,它可能会也可能不会。

    【讨论】:

      猜你喜欢
      • 2018-02-28
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多