java - 在序列化过程中更改一些对象字段名称

标签 java xml jaxb

我正在使用 javax.xml.bind.annotation.XmlRootElement 带注释的对象将其序列化为 XML 字符串。

        JAXBContext jc = JAXBContext.newInstance(obj.getClass());
        // Marshal the object to a StringWriter
        Marshaller marshaller = jc.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
        marshaller.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, "http://www.example.com/schema.xsd");
        StringWriter stringWriter = new StringWriter();
        marshaller.marshal(obj, stringWriter);
        result = stringWriter.toString();

如何更改 XML 中的某些节点名称,例如我在对象中有“price”,但在生成的 XML 文档中有“thePrice”。

最佳答案

使用 @XmlRootElement@XmlElement@XmlAttribute 的 name 属性在 XML 文档中定义不同的名称。

示例:

public class MyClass {
     @XmlElement(name="thePrice")
     private double price;
 }

关于java - 在序列化过程中更改一些对象字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36010432/

相关文章:

java - 使用 EclipseLink MOXy 解码时忽略 DTD

java - 无法使用 JAXB 正确解码包含选项卡的 XML 文件?

java - JSON Url 返回其他内容?

java - Servlet (TOMCAT) 中的 Log4J 日志路径

java - 如何在 WebView Android 中加载 url 时显示进度条

Python - 复制元素的属性并粘贴到另一个文本文件上

java - 在 Liferay 中部署和测试 portlet 的简单步骤

java - Apache Tomcat 中的异常 - 错误页面

xml - 单击后更改按钮中的图像?

java - JAXB:编码时多态性和忽略类作为类型