近年はJavaSciprtを利用した動的なサイトが多いため、データのやり取りをAjaxで行うことも多かったりします。
JavaScriptの場合、データをJSON形式で扱うため、サーバー側からレスポンスを返すときは、当然この形になるようにデータを変換する必要がでてきます。
PHPだと標準で関数が組み込まれていたりしますが、Javaの場合、ライブラリを使う必要がでてきますので、そのことについて書かせていただきます。
JavaでJSONを扱う場合、Jacksonというライブラリを使うことが一般的なようです。(2015年6月現在)
これらを使ってJavaのオブジェクトをJSONに変換する方法を説明します。
pomでのインストール
まずはpomで一気にインストールしてしまいましょう。
下記をpomに記述し、「依存性でビルド」を押せば無事取り込めます。
1 2 3 4 5 6 7 8 9 10 11 |
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.2</version> <type>jar</type> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.6.0-rc3</version> </dependency> |
Javaオブジェクト→JSONへの変換
下記のようなコードでJavaのオブジェクトをJSONに変換できます。
通常のオブジェクトはもちろんのこと、ListやMapなども普通に変換できるようです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public String getAllToJson() { //json自体は文字列ですので //Stringで定義します。 String json = null; try { //Personというのがidとnameだけで構成された単純なオブジェクトで //それをListの中に入れています。 List<Person> personList = personFacade.findAll(); //このクラスで実際に変換を行います。 ObjectMapper objectMapper = new ObjectMapper(); Map<String, List<Person>> personMap = new HashMap<>(); personMap.put("aaData", personList); //これが変換のメソッドです。 json = objectMapper.writeValueAsString(personMap); } catch (IOException ex) { Logger.getLogger(PersonBean.class.getName()).log(Level.SEVERE, null, ex); } return json; } |
下記リンクを参考にしました。