我的代码实际上包含一个资源类和一个BEan类,它的返回类型是JSON。
资源类
@Path("/json")
public class JSONRetrive {
@GET
@Produces(MediaType.APPLICATION_JSON)
public JSONT getJson(){
JSONT jsont = new JSONT();
jsont.setJsont("inr");
return jsont;
}
}
/*是否有任何注释将表示JSON。我需要使用任何其他注释吗? */
我的Bean类
//@XmlRootElement
public class JSONT {
private String jsont;
public String getJsont() {
return jsont;
}
public void setJsont(String jsont) {
this.jsont = jsont;
}
}
如果我取消@XmlRootElement的注释,它的工作很好,有没有其他的解决方案,这
我得到了这个@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>
如果您正在使用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响应。
也许这会有帮助?我不明白为什么使用注释会有问题,至少在这种情况下是这样。你能详细说明这给你带来的问题吗?