我即将用 Jersey 设置一个 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();
}
在浏览器中调用该方法将显示一个没有任何 JSON 内容(花括号等)的纯字符串:
Hello firefox, it is Tue Sep 18 13:52:57 CEST 2012
我想使用 dojo 工具包使用此服务。问题是,一旦我设置了 [handleAs: "json"]-flag,我就会得到第二种方法。它向我抛出一个错误“SyntaxError: Unexpected token H”,其中“H”是返回字符串的第一个字母。
那么:字符串和其他值类型的正确 json 表示形式是什么,以及我必须为我的方法设置哪些注释才能生成这些?