私はJerseyでREST-Webサービスを設定しようとしています。 現時点では、JSONのStringやその他のValue型の正しい表現についてちょっと混乱しています。Jerseyで文字列のJSON表現を返す
{"name":"reini","role":"admin"}
私の第二の方法は、次のようになります:そのような "良い" JSON文字列が表示されますブラウザでこのメソッドを呼び出すと
@GET
@Path("user")
@Produces(MediaType.APPLICATION_JSON)
public User user() {
return new User("reini", "admin");
}
: は、ここでは、2つのスニペットです
@GET
@Path("hello/{name}")
@Produces(MediaType.APPLICATION_JSON)
public String hello(@PathParam("name") String name) {
return "Hello " + name + ", it is " + new Date();
}
ブラウザでそのメソッドを呼び出すと、JSON-Stuff(中括弧など)のない純粋な文字列が表示されます。
Hello firefox, it is Tue Sep 18 13:52:57 CEST 2012
このサービスをdojoツールキットで使用したいと考えています。問題は、私が[handleAs: "json"] - flagを設定するとすぐに2番目のメソッドを取得することです。それは私に "SyntaxError:予期しないトークンH"というエラーを投げます。 "H"は返された文字列の最初の文字です。
So:Stringsやその他の値型の正しいjson表現は何ですか?これらの値を生成するためにメソッドで設定する必要がある注釈は何ですか?
は、それはすべての操作のためにDTOを作成するか、私が使用したい種類ごとにDTOを作成する良いですか? – Reini
各タイプのDTO – SiMet
"JSONは{"で始まります - 間違っています。 http://json.orgによると、引用された文字列リテラルも有効なJSONであり、jerseyはJSON文字列として文字列を正しくシリアル化する機能をサポートする必要があります。 – ddumont