我的代码实际上包含一个资源类和一个BEan类,它的返回类型是JSON。
@Path("/json")
public class JSONRetrive {
@GET
@Produces(MediaType.APPLICATION_JSON)
public JSONT getJson(){
JSONT jsont = new JSONT();
jsont.setJsont("inr");
return jsont;
}
}
/ *是否有任何Annotation将代表JSON。我是否需要使用任何其他注释。* /
//@XmlRootElement
public class JSONT {
private String jsont;
public String getJsont() {
return jsont;
}
public void setJsont(String jsont) {
this.jsont = jsont;
}
}
如果我取消注释@XmlRootElement它是否正常工作是否还有其他替代解决方案
答案 0 :(得分:2)
我为这个@XmlRootElement
提供了替代解决方案,如果我们想要使用@XmlRootElement
生成JSON响应,我们应该选择Jersey Jackson库。在web.xml
(DD文件)
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
和Jackson API相关的jar。
答案 1 :(得分:0)
也许this会有所帮助?我不明白为什么使用注释是一个问题,至少在这种情况下。你能否详细说明这对你造成的问题?
答案 2 :(得分:0)
如果您正在使用Jersey和Maven,那么只需转到您的pom.xml并根据您的情况取消注释/添加以下代码
<!-- uncomment this to get JSON support
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-binding</artifactId>
</dependency>
-->
在此之后,您可以使用@Produces(MediaType.APPLICATION_JSON)
并获得JSON响应。