Jackson XML 映射器强制小写 XML 标签
Jackson XML mapper forcing lowercase XML tags
我正在尝试将带有 XML 元素注释的 POJO 转换为 XML 字符串。我把变量名都大写了,注解名也大写了
当我 运行 下面的代码片段以下面的 XML 示例结束时,所有标签名称都是小写的。我一直在试验 enabling/disabling 功能,但没有发现任何可以 on/off 强制小写 XML 标记出来的东西。
Value of String xml variable below:
ACTUAL OUTPUT:
<root><field1>value</field1><field2>value2<field2><field3>value3<field3><root>
EXPECTED OUTPUT:
<root><Field1>value</Field1><Field2>value2<Field2><Field3>value3<Field3><root>
public class Object1 {
@XmlElement(name = "Field1", required = true)
protected String Field1;
@XmlElement(name = "Field2", required = true)
protected String Field2;
@XmlElement(name = "Field3", required = true)
protected String Field3;
}
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.databind.*;
...
JacksonXmlModule xmlModule = new JacksonXmlModule();
xmlModule.setDefaultUseWrapper(false);
ObjectMapper xmlMapper = new XmlMapper(xmlModule);
xmlMapper.disable( MapperFeature.USE_STD_BEAN_NAMING );
// convert the object into xml string
// object1 is an instance of Object1 above with assigned values
String xml = xmlMapper.writeValueAsString(object1);
这是一个解决方案,
但也许不是您要寻找的答案。
将 @XmlElement
注释替换为 @JacksonXmlProperty
注释。
使用 localName
属性设置标签名称。
这是一个例子:
@JacksonXmlProperty(localName = "Field1")
我正在尝试将带有 XML 元素注释的 POJO 转换为 XML 字符串。我把变量名都大写了,注解名也大写了
当我 运行 下面的代码片段以下面的 XML 示例结束时,所有标签名称都是小写的。我一直在试验 enabling/disabling 功能,但没有发现任何可以 on/off 强制小写 XML 标记出来的东西。
Value of String xml variable below:
ACTUAL OUTPUT:
<root><field1>value</field1><field2>value2<field2><field3>value3<field3><root>
EXPECTED OUTPUT:
<root><Field1>value</Field1><Field2>value2<Field2><Field3>value3<Field3><root>
public class Object1 {
@XmlElement(name = "Field1", required = true)
protected String Field1;
@XmlElement(name = "Field2", required = true)
protected String Field2;
@XmlElement(name = "Field3", required = true)
protected String Field3;
}
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.databind.*;
...
JacksonXmlModule xmlModule = new JacksonXmlModule();
xmlModule.setDefaultUseWrapper(false);
ObjectMapper xmlMapper = new XmlMapper(xmlModule);
xmlMapper.disable( MapperFeature.USE_STD_BEAN_NAMING );
// convert the object into xml string
// object1 is an instance of Object1 above with assigned values
String xml = xmlMapper.writeValueAsString(object1);
这是一个解决方案, 但也许不是您要寻找的答案。
将 @XmlElement
注释替换为 @JacksonXmlProperty
注释。
使用 localName
属性设置标签名称。
这是一个例子:
@JacksonXmlProperty(localName = "Field1")