Spring MVC でjQueryのAjax関数を使用する2 〜 JSON作成にJacksonを使用する
「Spring MVC でjQueryのAjax関数を使用する1 〜 JSON作成にGSONを使用する」では、jQueryのajax関数を使用して非同期通信を行い、呼び出したコントローラにてGSONを使用してJSON文字列を作成し、クライアント側へ返却するサンプルを作成した。
今回は、GSONを使用せずに、Jacksonを使用する。
実際にサンプルを見る前に、前回との主な違いを纏めておく。
・JSON作成に、GSONではなくてJacksonを使用する。
・pom.xmlに、「jackson-core-asl」と「jackson-mapper-asl」の依存関係を追加する。
・コントローラ側で返却するオブジェクトは、JSON文字列ではなく、Javaオブジェクトのままで良い。
※)サーバからクライアントへ返却する過程で、JacksonのマッパーがPOJOをJSON文字列に変換してくれる。
それでは、サンプルを示す。
といっても「Spring MVC でjQueryのAjax関数を使用する1 〜 JSON作成にGSONを使用する」と殆ど変わらないので変更点の抜粋とする。
◎コントローラ側のメソッド
//GSONを用いた場合 @RequestMapping(value = "/getJSON", method = RequestMethod.GET) @ResponseBody public String getJSON(){ logger.info("called getJSON"); Gson gson = new Gson(); List<String> strList = new ArrayList<String>(); strList.add("test1"); strList.add("test2"); return gson.toJson(strList); } //Jacksonを用いた場合 @RequestMapping(value = "/getJSON1", method = RequestMethod.GET) @ResponseBody public List<String> getJSON1(){ logger.info("called getJSON1"); List<String> strList = new ArrayList<String>(); strList.add("test1"); strList.add("test2"); return strList; }
◎pom.xmlの追記内容
coreとmapperの2つを追記しなければならないことに注意する。
<!-- Jackson a high-performance JSON processor (parser, generator) --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency>