如何在Jersey中从JSON输出中省略@XmlRootElement?

3

我正在尝试从简单对象列表生成JSON。它能正常工作,但我的输出被类名包装:

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

What I would like to have is

[{"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,尽管我不确定它是否放置正确。我正在使用嵌入式Jetty,并设置了ServletHolder的参数。


你的类实例没有命名吗?应该在那里放上它的名称,而不是 classname - Alex Stybaev
MyClass?它是List的类型。 - wannabeartist
我放弃了嵌入式Jetty,尝试使用带有web.xml的“常规”Jetty - 运行得很好。不过,如果有人知道如何在没有web.xml的情况下设置嵌入式Jetty,请发布您的答案。 - wannabeartist
1个回答

0

这将有助于将Java列表转换为可以由Mime媒体解析的字符串:application/json。 - meenal
1
如果您不想向项目添加任何其他依赖项,请尝试在数组后添加toString()。我猜那也会起作用。 - meenal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接