2012-05-08 14 views
3

我想从简单对象的列表中产生JSON。它的工作原理,但我的输出是包裹着的类名:如何从泽西JSON输出中省略@XmlRootElement?

{"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为真,但我不是100%肯定,如果它是在正确的地方。我正在使用Embedded Jetty,并为ServletHolder设置参数。

+0

你没有为你的类的实例的名称?它应该在那里,而不是'classname' –

+0

MyClass?这是List的类型。 – wannabeartist

+0

我放弃了嵌入式Jetty,并尝试使用web.xml代替“常规”Jetty - 效果很好。不过,如果有人知道如何使用嵌入式Jetty进行设置,而不使用web.xml - 请发布您的答案。 – wannabeartist

回答

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

+0

这将有助于将java列表转换为可由Mime媒体解析的字符串:application/json – meenal

+1

如果您不想向项目添加更多依赖项。尝试在数组之后添加toString()。我想这也会起作用 – meenal