【发布时间】:2011-06-11 09:24:31
【问题描述】:
我们如何使用 JAXB 对包含列表的 JSON 中的根元素进行编组/解组?
所以它会将 JSON 作为
{
"tag" : [
{
"id" : "a",
"id2": "aa"
},
{
"id" : "b",
"id2" : "bb"
},
{
"id" : "c",
"id2" : "cc"
}
]
}
我正在使用通过 Jettison 支持 JSON 的 Apache CXF。
Java 类可能如下所示。可以对列表使用 XmlList 注释,并使用 XmlValue 将该列表放在根元素中。问题是 XmlValue 不会采用用户定义的类型。
@XmlRootElement(name = "tag")
public class test
{
@XmlList
@XmlValue
private List<UserDefinedType> testList;
}
有没有办法解决这个问题。我需要它来解组传入的 JSON。从这里得到这个想法 http://bdoughan.blogspot.com/2010/09/jaxb-collection-properties.html
【问题讨论】:
-
为什么要使用 JAXB 序列化 JSON? JAXB 仅用于 XML 绑定...它不是具有灵活绑定的通用数据建模框架。
-
JAXB 也被用于 JSON。看这里blogs.sun.com/arungupta/entry/totd_8_generating_json_using 和这里jettison.codehaus.org
-
虽然一些工具可以将 JAXB 注释的类编组为 JSON(例如 Jackson 和显然是 Jettison),但这是非常不标准的,并且取决于工具。你在使用 Jettison 和 XStream 吗?
-
我正在使用通过 Jettison 支持 JSON 的 Apache CXF。
-
需要更多信息——你想操作什么样的Java对象?此外,即使不知道这一点,用户也经常在尝试过 Jackson(“纯”JSON)方法后立即放弃,我认为 CXF 也支持 Jacksons(Jersey 和 RESTeasy 肯定可以)
标签: java json jaxb cxf jettison