8

我的代码实际上包含一个资源类和一个 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 它工作正常是否有任何其他替代解决方案

4

3 回答 3

2

我为此找到了替代解决方案@XmlRootElement,如果我们想在不使用的情况下生成 JSON 响应,@XmlRootElement我们应该使用 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。

于 2013-04-01T07:38:58.223 回答
1

如果您使用的是 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 响应。

于 2017-09-17T10:46:09.040 回答
0

也许会有所帮助?我不明白为什么使用注释对您来说是个问题,至少在这种情况下是这样。您能否详细说明这给您带来的问题?

于 2013-03-21T13:08:54.803 回答