我的JAXB对象模型的一个实例包含我在为实例生成Xml时要输出的元素,但在生成json时不包含
即我想要
<release-group>
<type>Album</type>
<title>Fred</title>
</release-group>
和
"release-group" : {
"title" : "fred",
},
但有
"release-group" : {
"type" : "Album",
"title" : "fred"
},
我可以使用oxml.xml映射文件
执行此操作这个答案展示了我如何使用transient关键字Can I get MOXy to not output an attribute when generating json?为属性做这件事,但我不能让它适用于元素。
答案 0 :(得分:1)
抱歉问题解决了,我有点困惑。
我上面给出的示例实际上并没有准确地匹配真实情况,类型实际上是作为Xml的属性输出的,但是使用transient不起作用,因为它已在JAXB中重命名
@XmlAttribute(name = "target-type", required = true)
@XmlSchemaType(name = "anyURI")
protected String targetType;
所以添加
<java-type name="ReleaseGroup">
<java-attributes>
<xml-transient java-attribute="targetType"/>
</java-attributes>
</java-type>
工作,之前我做错了
<java-type name="ReleaseGroup">
<java-attributes>
<xml-transient java-attribute="target-type"/>
</java-attributes>
</java-type>