需要使用自己的属性之一重命名 XML 元素
Need to rename XML Element with one of its own properties
我知道我们可以使用 @XMLRootElement
注释来设置我们希望它在使用 JAXB 将对象转换为 xml 后出现在 XML 中的名称,但我正在寻找这样 XML 元素可以使用它自己的属性之一重命名,例如 POJO
class Field
{
String fieldName;
String fieldValue;
//getter/setter
}
对象到 xml 转换后使用 JAXB,而不是
<Field>
<fieldName>FirstName</fieldName>
<fieldValue>Rahul</fieldValue>
</Field
我需要将上面的xml格式化为
<FirstName>Rahul</FirstName>
我知道如果我将 FirstName 声明为 String 就可以简单地得到它,但不知何故我需要按照上面解释的那样做。
是的,您可以通过使用 @JsonProperty(...)
.
注释来设置您希望它们显示的属性名称
在你的罐子里你可以做如下事情:
class Field
{
@JsonProperty("FirstName")
String fieldName;
String fieldValue;
/* Getter-Setters */
}
如果您使用的是 MOXy/Eclipselink,则可以使用 @XmlVariableNode
注释。您需要在包含 Field 的对象上指定它(如果 Field 是根,那么我担心 @XmlVariableNode
无济于事)。示例:
class Field {
@XmlTransient
String fieldName;
@XmlValue
String fieldValue;
}
class Holder {
@XmlVariableNode("fieldName")
Field field;
}
请注意,@XmlVariableNode
是 MOXy 特定注释。它似乎从 2.6 版本开始可用。
我知道我们可以使用 @XMLRootElement
注释来设置我们希望它在使用 JAXB 将对象转换为 xml 后出现在 XML 中的名称,但我正在寻找这样 XML 元素可以使用它自己的属性之一重命名,例如 POJO
class Field
{
String fieldName;
String fieldValue;
//getter/setter
}
对象到 xml 转换后使用 JAXB,而不是
<Field>
<fieldName>FirstName</fieldName>
<fieldValue>Rahul</fieldValue>
</Field
我需要将上面的xml格式化为
<FirstName>Rahul</FirstName>
我知道如果我将 FirstName 声明为 String 就可以简单地得到它,但不知何故我需要按照上面解释的那样做。
是的,您可以通过使用 @JsonProperty(...)
.
在你的罐子里你可以做如下事情:
class Field
{
@JsonProperty("FirstName")
String fieldName;
String fieldValue;
/* Getter-Setters */
}
如果您使用的是 MOXy/Eclipselink,则可以使用 @XmlVariableNode
注释。您需要在包含 Field 的对象上指定它(如果 Field 是根,那么我担心 @XmlVariableNode
无济于事)。示例:
class Field {
@XmlTransient
String fieldName;
@XmlValue
String fieldValue;
}
class Holder {
@XmlVariableNode("fieldName")
Field field;
}
请注意,@XmlVariableNode
是 MOXy 特定注释。它似乎从 2.6 版本开始可用。