0

うーん...1つだけ質問するつもりでした。だけど一石二鳥と決めた。

最初の質問: Sitebricks は、Java POJO と JSON の間のデフォルトのシリアライザー/デシリアライザーとして何を使用しますか? たとえば、これが私の POJO だとしましょう。

public class MyObject {
    private String key;
    private int value;
    public MyObject (String k, int v) {
        this.key = k;
        this.value = v;
    }
}

これは、私の Sitebricks サーブレットのメソッドの例です。

@Get
public Reply<?> listPools() {
    return Reply.with(new MyObject("Foo", 6)).as(Json.class);
}

Jacksonアノテーションを付けMyObjectたり、コードのどこにもGSONを使用したりしませんでした。しかし、驚いたことに、応答のコンテンツ本文として次の内容が返されます。

{"value":6,"key":"Foo"}

したがって、私が知りたいのは、Sitebricks が JSON をシリアライズ/デシリアライズするためにデフォルトで使用しているテクノロジまたはフレームワーク、またはその他のものです。ジャクソン?GSON? 魔術と魔術?

次に、2 番目の質問です。ヘッダーで、レスポンスのContent-Typetext/json. 私の過去の経験では、私は常にapplication/jsonJSON の Content-Type として扱ってきたので、これは私には奇妙に見えました。このStackoverflow の投稿は、私の信念を裏付けるものです。この点について何かコメントはありますか?

前もって感謝します!

4

2 に答える 2

1

SitebricksはデフォルトでJacksonを使用します。これは、適切なデフォルトを使用して、構成なしでオブジェクトを変換します。動作をオーバーライドする場合は、Jacksonが規定する標準の構成を使用してObjectMapperをバインドします。

ほとんどの場合、application/jsonを正しく設定する必要があります。SBがこれを設定する必要があります、そうです、トランクを変更します。

于 2012-11-12T03:11:40.893 に答える
1

そして、次のように外出先で変更することはまだ可能です

 return Reply.with(...).as(Json.class).type("application/json; charset=utf-8");
于 2012-11-21T15:58:19.037 に答える