Java 需要使用XML元素自己的属性之一重命名XML元素
我知道我们可以使用Java 需要使用XML元素自己的属性之一重命名XML元素,java,xml,jaxb,moxy,Java,Xml,Jaxb,Moxy,我知道我们可以使用@XMLRootElement注释来设置名称,在使用JAXB进行对象到XML的转换之后,我们希望通过该名称在XML中显示这些内容,但我正在寻找方法,以便可以使用XML元素自己的属性(如POJO)重命名XML元素 class Field { String fieldName; String fieldValue; //getter/setter } 在使用JAXB将对象转换为xml之后,而不是 <Field> <fieldN
@XMLRootElement
注释来设置名称,在使用JAXB进行对象到XML的转换之后,我们希望通过该名称在XML中显示这些内容,但我正在寻找方法,以便可以使用XML元素自己的属性(如POJO)重命名XML元素
class Field
{
String fieldName;
String fieldValue;
//getter/setter
}
在使用JAXB将对象转换为xml之后,而不是
<Field>
<fieldName>FirstName</fieldName>
<fieldValue>Rahul</fieldValue>
</Field
名字
拉胡尔
是的,您可以通过使用@JsonProperty(…)
注释属性来设置属性的名称,就像您希望它们出现一样
在您的can中,您可以执行以下操作:
class Field
{
@JsonProperty("FirstName")
String fieldName;
String fieldValue;
/* Getter-Setters */
}
如果您使用的是MOXy/Eclipselink,那么就有可用的@XmlVariableNode
注释。您需要在保存字段的对象上指定它(如果字段是根,那么我担心@XmlVariableNode
不会有帮助)。例如:
class Field {
@XmlTransient
String fieldName;
@XmlValue
String fieldValue;
}
class Holder {
@XmlVariableNode("fieldName")
Field field;
}
请注意,@XmlVariableNode
是MOXy特定的注释。它似乎从2.6版开始提供。是的,即使使用@XmlElement也可以很容易地做到这一点,但我想做的是略有不同。实际上,我不想给出任何硬代码名,而应该是一个运行时值。like fieldName的值在转换为xml时变为name Field。感谢您的回复,我想在这里添加的另一件事是,如果这个Field类还有一个属性,那么有没有办法将其用作RahulSee@xmldattribute
注释:@xmldattribute(name=“id”)等最终元素的属性字符串字段属性代码>
class Field {
@XmlTransient
String fieldName;
@XmlValue
String fieldValue;
}
class Holder {
@XmlVariableNode("fieldName")
Field field;
}