如何从泽西的JSON输出中省略@XmlRootElement?

时间:2012-05-08 09:06:58

标签: json rest jaxb jersey

我正在尝试从简单对象列表中生成JSON。它有效,但我的输出包含了classname:

{"classname":[{"name":"John Doe","title":"manager"} .....]}

我想拥有的是

[{"name":"John Doe","title":"manager"} .....]

我理解这是因为我的课上有@XmlRootElement,但是如果我省略了,那么我会收到错误:

A message body writer for Java class java.util.ArrayList, and Java type
java.util.List<MyClass>, and MIME media type application/json was not found

我已将com.sun.jersey.api.json.POJOMappingFeature设置为true,但我不能100%确定它是否在正确的位置。我正在使用Embedded Jetty并为ServletHolder设置参数

1 个答案:

答案 0 :(得分:0)

您可以使用gson创建数组的字符串。应该给你想要的答案。

Gson gson = new Gson();
gson.toJson([{"name":"John Doe","title":"manager"} .....]);

了解更多信息:http://www.studytrails.com/java/json/java-google-json-java-to-json.jsp

javadoc:http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/Gson.html