Name
Password

JSON連携

  • 2008-02-01 10:03:50

ymir-jsonモジュールを使うことで、JSONによる通信を行なうことができるようになります。

ymir-jsonモジュールの使い方

ここではMaven2で管理されているアプリケーションプロジェクトでymir-jsonを使用するための方法を説明します。

ymir-jsonを使用するには、アプリケーションのpom.xmlに以下のエントリを追加して下さい:

<dependency>
  <groupId>org.seasar.ymir</groupId>
  <artifactId>ymir-json</artifactId>
  <version>(Ymirのバージョン)</version>
</dependency>

バージョン番号はYmir本体のバージョン番号と合わせるようにして下さい。

JSONリクエストの受信

Webブラウザ側から送信されたJSONリクエスト(Content-Typeがapplication/jsonまたはtext/javascriptでかつリクエストボディがJSON形式であるリクエスト)を受信すると、自動的にJSONの内容がPageオブジェクトにインジェクトされます。

例えば以下のようなJSONリクエストを受信すると、Pageオブジェクトのhoeプロパティとfugaプロパティにそれぞれ「HOE」、「FUGA」が設定されます。

JSONリクエスト:

{ "hoe" : "HOE", "fuga" : "FUGA" }

Pageクラス:

public class ExamplePage {
    private String hoe_;
    private String fuga_;

    @RequestParameter
    public void setHoe(String hoe) {
        hoe_ = hoe;
    }

    @RequestParameter
    public void setFuga(String fuga) {
        fuga_ = fuga;
    }
}

インジェクト対象となるSetterは、リクエストパラメータ用のSetterと同様、@RequestParameterアノテーションが付与されたものだけです。

JSONレスポンスの送信

以下のように返り値の型がnet.sf.json.JSONObjectであるアクションメソッドを用意してJSONObjectオブジェクトを返すと、返り値の内容がJSON形式(Content-Typeはapplication/json; charset=UTF-8)でWebブラウザに送信されます。

public JSONObject _post() {
    JSONOBject obj = new JSONObject();
    obj.put("hoe", "HOE");
    obj.put("fuga", "FUGA");
    return obj;
}