我知道我们可以使用@XMLRootElement
注释来设置我们希望在使用JAXB进行对象到xml转换后在XML中出现的名称,但我正在研究如何使用一个XML元素重命名XML元素自己的属性,如POJO
class Field
{
String fieldName;
String fieldValue;
//getter/setter
}
使用JAXB对象进行xml转换后,而不是
<Field>
<fieldName>FirstName</fieldName>
<fieldValue>Rahul</fieldValue>
</Field
我需要将上面的xml格式化为
<FirstName>Rahul</FirstName>
我知道如果我将 FirstName 声明为String,我可以简单地解决这个问题,但我需要按照上面的说明进行操作。
答案 0 :(得分:1)
如果您使用的是MOXy / Eclipselink,则可以使用@XmlVariableNode
注释。您需要在包含Field的对象上指定它(如果Field是根,那么我担心@XmlVariableNode
将无法帮助)。例如:
class Field {
@XmlTransient
String fieldName;
@XmlValue
String fieldValue;
}
class Holder {
@XmlVariableNode("fieldName")
Field field;
}
请注意@XmlVariableNode
是一个特定于MOXy的注释。它似乎从2.6版本开始可用。
答案 1 :(得分:0)
是的,您可以通过使用@JsonProperty(...)
对其进行注释来设置属性的名称,就像您希望它们一样。
在你的罐头里你可以做如下的事情:
class Field
{
@JsonProperty("FirstName")
String fieldName;
String fieldValue;
/* Getter-Setters */
}