Jersey で REST-Webservice をセットアップしようとしています。現時点では、JSON での文字列またはその他の値型の正しい表現について少し混乱しています。以下に 2 つのスニペットを示します。
@GET
@Path("user")
@Produces( MediaType.APPLICATION_JSON)
public User user() {
return new User("reini", "admin");
}
ブラウザでこのメソッドを呼び出すと、次のような「適切な」JSON 文字列が表示されます。
{"name":"reini","role":"admin"}
私の2番目の方法は次のようになります。
@GET
@Path("hello/{name}")
@Produces( MediaType.APPLICATION_JSON)
public String hello(@PathParam("name") String name) {
return "Hello " + name + ", it is " + new Date();
}
Browswer でそのメソッドを呼び出すと、JSON 要素 (中括弧など) を含まない純粋な文字列が表示されます。
Hello firefox, it is Tue Sep 18 13:52:57 CEST 2012
このサービスを Dojo ツールキットで利用したいと考えています。問題は、[handleAs: "json"]-flag を設定するとすぐに 2 番目のメソッドを取得することです。「SyntaxError: Unexpected token H」というエラーがスローされます。ここで、「H」は返された文字列の最初の文字です。
では、文字列やその他の値の型の正しい json 表現と、これらを生成するためにメソッドに設定する必要がある注釈は何ですか?