4

我在基于休息的 Web 服务中创建了以下休息方法

@GET
@Produces("application/json")
@Path("plain")
public String getPlain()
{
    return "hello world";
}

@GET
@Produces("application/json")
@Path("wrapper")
public Response getWrapper()
{
    return Response.ok(new Object(){ public String data = "hello world";}).build();
}

当我调用普通服务时,它返回一个原始字符串hello world而不是 json 格式的输出。但是,将字符串包装在对象中会返回 json {"data":"hello world"}

为什么它会表现出这样的行为?如何将纯字符串作为 json 发送?

4

2 回答 2

0

我尝试了上述选项,它不起作用。

String result="hello world";
return result;

String 没有自动转换的原因似乎是由于缺少@XmlRootElement。基于 cxf http://cxf.apache.org/docs/jax-rs-data-bindings.html#JAX-RSDataBindings-HandlingJAXBbeanswithoutXmlRootElementannotations中的文档,我们需要使用一些 jaxbElementClassMap。但无法找到更多细节。

于 2012-12-20T09:55:12.593 回答
-2

尝试这个

@GET 
@Produces("application/json") 
@Path("plain") 
public String getPlain() 
{ 
String result= "hello world";
    return result;
} 

JSON 需要一个键值对。

于 2012-09-24T09:11:08.693 回答