java – 返回带Jersey的String的JSON表示形式

前端之家收集整理的这篇文章主要介绍了java – 返回带Jersey的String的JSON表示形式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我即将设置一个带有泽西的REST-Webservice.
目前我对 JSON中正确表示字符串或其他值类型有些疑惑.
这是两个片段:
@GET
@Path("user")
@Produces( MediaType.APPLICATION_JSON)
public User user() {
    return new User("reini","admin");
}

在浏览器中调用方法显示一个“好的”JSON字符串:

{"name":"reini","role":"admin"}

我的第二个方法如下所示:

@GET
@Path("hello/{name}")
@Produces( MediaType.APPLICATION_JSON)
public String hello(@PathParam("name") String name) {
    return "Hello " + name + ",it is " + new Date();
}

在Browswer中调用方法显示纯粹的String,而不需要任何JSON-Stuff(Curly Braces等):

Hello firefox,it is Tue Sep 18 13:52:57 CEST 2012

我想用dojo工具包使用这个服务.问题是,一旦我设置[handleAs:“json”] – 标志,我得到了第二种方法.它给我一个错误SyntaxError:Unexpected token H”,其中“H”是返回的字符串的第一个字母.

那么:Strings和其他值类型的正确的json表示是什么,以及我为我的方法生成的什么注释?

解决方法

你应该定义一个DTO并把你的String放在那里.所以你将使用一个String作为属性生成一个HelloResp类.在你的方法中填充该属性并返回.

你可以查看这个Tutorial.另一个tutorial.

Firefox没有显示错误,因为它不处理您的响应.显示服务返回的任何内容.然而,该工具包开始处理响应作为JSON,但没有有效的JSON(JSON以{开头))

猜你在找的Java相关文章