Javaでgoogle-gsonを利用した「JSON文字列からJavaBeansオブジェクト」、「JavaBeansオブジェクトからJSON文字列」への変換ソース例をご紹介します。
google-gsonのダウンロード
- 以下サイトへアクセスして「google-gson」をダウンロードします。
ダウンロード先:google-gson
- ダウンロードした「google-gson-x.x.x-release.zip」に含まれる「jar」ファイルをEclipseのpluginへ追加し、Eclipseを再起動します。
- プロジェクトのプロパティから「Javaのビルド・パス」を選択し「外部Jar追加」から上記で追加したjarファイルを選択して追加すれば準備完了です。
Javaソース
JavaBeansクラス
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
/** * <p>[概 要] SampleBean。</p> * <p>[詳 細] </p> * <p>[備 考] </p> * <p>[環 境] </p> */ @SuppressWarnings("serial") public class SampleBean { /** * 番号 */ private Integer no; /** * データ */ private String data; /** * <p>[概 要] 番号を取得する。</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @return 番号 */ public Integer getNo() { return no; } /** * <p>[概 要] 番号を設定する。</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @param no 番号 */ public void setNo(Integer no) { this.no = no; } /** * <p>[概 要] データを取得する。</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @return データ */ public String getData() { return data; } /** * <p>[概 要] データを設定する。</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @param data データ */ public void setData(String data) { this.data = data; } } |
JSON文字列からJavaBeansオブジェクトへの変換
JSON文字列からJavaBeansオブジェクトへ変換する際は「Gson」クラスの「fromJson」メソッドを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/** * <p>[概 要] JSON文字列⇒基本型(JavaBeans)への変換処理(Google-Gson版)</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @param jsonStr JSON形式の文字列 * @return 基本型(JavaBeans)オブジェクト(パラメータがnullの場合はnullを返します。) */ public static SampleBean parseJsonToBean(String jsonStr){ if(jsonStr == null){ // パラメータがnullの場合、nullを返します return null; } // Gsonオブジェクトを作成 Gson gson = new Gson(); // JavaBeansオブジェクトをJSON文字列へ変換 SampleBean bean = gson.fromJson(jsonStr, SampleBean.class); return bean; } |
JavaBeansオブジェクトからJSON文字列への変換
JavaBeansオブジェクトからJSON文字列へ変換する際は「Gson」クラスの「toJson」メソッドを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/** * <p>[概 要] 基本型(JavaBeans)⇒JSON文字列への変換処理(Google-Gson版)</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @param bean JavaBeansオブジェクト * @return JSON変換後の文字列(パラメータがnullの場合はnullを返します。) */ public static String parseBeanToJson(SampleBean bean){ if(bean == null){ // パラメータがnullの場合、nullを返します return null; } // Gsonオブジェクトを作成 Gson gson = new Gson(); // JavaBeansオブジェクトをJSON文字列へ変換 String jsonStr = gson.toJson(bean); return jsonStr; } |
JUnitサンプル
JSON文字列からJavaBeansオブジェクトへの変換用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
@Test public void parseJsonToBeanTest() { // 準備 String param = "{\"no\":100,\"data\":\"JSON変換文字列テスト\"}"; // 期待値 SampleBean expected = new SampleBean(); expected.setNo(100); expected.setData("JSON変換文字列テスト"); // 実行 SampleBean result1 = UtilSample1.parseJsonToBean(param); SampleBean result2 = UtilSample1.parseJsonToBean(null); // 検証 assertEquals("番号が一致していません。", expected.getNo(), result1.getNo()); assertEquals("データが一致していません。", expected.getData(), result1.getData()); assertNull("NULLではありません。", result2); } |
JavaBeansオブジェクトからJSON文字列への変換用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
@Test public void parseBeanToJsonTest() { // 準備 SampleBean bean = new SampleBean(); bean.setNo(100); bean.setData("JSON変換文字列テスト"); // 期待値 String expected = "{\"no\":100,\"data\":\"JSON変換文字列テスト\"}"; // 実行 String result1 = UtilSample1.parseBeanToJson(bean); String result2 = UtilSample1.parseBeanToJson(null); // 検証 assertEquals("JSON文字列が一致していません。", expected, result1); assertNull("NULLではありません。", result2); } |