【发布时间】:2012-05-22 09:12:27
【问题描述】:
我使用使用 JAXB 创建的数据模型,从中我可以直接生成 XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\
<metadata xmlns="http://musicbrainz.org/ns/mmd-2.0#" xmlns:ext="http://musicbrainz.org/ns/ext#-2.0">
<artist-list offset="0" count="1">
<artist ext:score="100" type="Group" id="4302e264-1cf0-4d1f-aca7-2a6f89e34b36">
<name>Farming Incident</name>
<ipi-list>
<ipi>1001</ipi>
</ipi-list>
</artist>
</artist-list>
</metadata>
在 Jersey 的帮助下,还可以使用自然表示法生成 JSon
"artist-list":
{"offset":0,
"count":1,
"artist":[
{"score":"100",
"type":"Group",
"id":"4302e264-1cf0-4d1faca7-2a6f89e34b36",
"name":"Farming Incident",
"ipi-list":
{
"ipi":[
"1001"
]
}
}]
}
Xml 很好,json 几乎很好,除了因为 Json 直接支持具有 ipi-list 和 Artist-list 等元素的数组似乎不是很 json,是否可以从我的模型生成更多类似于 json 的 json?
应要求提供的其他信息 json 是从此 MMD 模式生成的 http://svn.musicbrainz.org/mmd-schema/trunk/brainz-mmd2-jaxb/src/main/resources/musicbrainz_mmd-2.0.xsd 使用 JAXB 和 Jersey , 看 http://svn.musicbrainz.org/search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ResultsWriter.java 和 http://svn.musicbrainz.org/search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ArtistWriter.java
关键是我希望能够以最小的麻烦从一个模式生成 Json 和 XML,但显然 Json 看起来不正确,所以我正在寻找一种改进它的方法(我真的不自己有json的经验)
【问题讨论】:
-
您的模型最初是注解的 java 类还是 JAXB 模式?
-
您的输出似乎有点奇怪。您能否展示如何对类进行注释以及如何转换为 XML/JSON?
-
这正是你所拥有的:对于每个对象,你都有它的所有属性等等。如果您不喜欢它 - 在现有 JAXB 注释之上创建自己的注释,以生成带有 JSON 特定注释的自定义 JSON。
-
我已经更新了问题
-
不只是另一个 XmlElement ,但 XmlElementWrapper 听起来很有趣