生成json时,我可以让MOXy不输出元素吗?

时间:2012-09-08 22:13:23

标签: json eclipselink moxy

我的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?为属性做这件事,但我不能让它适用于元素。

1 个答案:

答案 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>