Могу ли я заставить MOXy не выводить элемент при генерации json?

Экземпляр моей объектной модели 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, Могу ли я заставить MOXy не выводить атрибут при генерации json? но я не могу заставить это работать для элемента.


person Paul Taylor    schedule 08.09.2012    source источник


Ответы (1)


Извините, проблема решена, немного путаницы с моей стороны.

Пример, который я привел выше, на самом деле не совсем точно соответствовал истинной ситуации, тип фактически выводился как атрибут для Xml, но использование переходного процесса не работало, потому что он был переименован в 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>
person Paul Taylor    schedule 09.09.2012