当前位置: 首页 > 知识库问答 >
问题:

强制小写XML标记的Jackson XML映射器

穆季萌
2023-03-14

当我运行下面的代码片段时,我得到了下面的XML示例,所有的标记名都是小写的。我一直在尝试启用/禁用特性,但没有发现任何可以打开/关闭、强制删除小写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);

共有1个答案

冀耀
2023-03-14

这是一个解决办法,但也许不是你正在寻求的答案。

@XmlElement批注替换为@JacksonXmlProperty批注。使用localname属性设置标记名。

下面是一个示例:@JacksonXmlProperty(localName=“field1”)

 类似资料:
  • 我需要解析一个XML文件,然后将其映射到一个Java对象。到目前为止,我使用带注释的POJO来执行此操作: 然后用JAXB解组它: 问题:有时,我的客户发送的文件具有稍微不同的标记名(例如,< code>Eventlist而不是< code>EventList) 是否有允许标记同时使用两个名称的选项?到目前为止,我通过在POJO中给出2个属性来解决这个问题: 这个很难维护,禁止我使用‘必填’属性,

  • 我不清楚jackson是如何处理映射字段中的大写字母的。如果有人能帮忙,我将不胜感激。 上面是我的json,下面是我的例外。。。 上面是我的例外,下面是我的班级。。。 ... 等等

  • 问题内容: _id成员的类型仅从bson.ObjectId派生时,不再映射为ObjectId类型: id 在Mongo中应该是一个 _ObjectId 。但是事实证明,选择了 字符串 : Mongo Shell: 这可能是有意的,因为 bson.ObjectId 本身是从 string 派生的。但是在这里,这对我们不利。 我们可以告诉mgo将_id映射到数据库中的ObjectId吗? 问题答案:

  • 我试图将我的GeoJson从内联jcript移动到一个URL,以评估它如何提高具有大量标记(3,000)的地图的性能。然而,我一直无法让我的标记显示在地图上,并希望有一双新的眼睛。我的测试页面的url在这里:http://webapps.fhsu.edu/ksherp/testmapbox.aspxGeoJson文件链接

  • 我正试图将我的应用程序移植到新的Google Maps API v2,但在与标记交互时遇到了麻烦。 我的背景:我有一张地图,显示公共汽车和公共汽车站。在旧图书馆里,我有了自己的项目--公共汽车站的项目,还有一个公共汽车的项目。每一个都有一个不同的OnTapListener(实际上我使用一个外部库来显示气球),因此当用户点击巴士标记时不会发生任何事情,但当他点击巴士站标记时,一个包含其信息的活动被打

  • XML Mapping is an experimental feature in Hibernate 3.0 and is currently under active development.