以前にJacksonでの変換をやりましたが、今回はGSONを使ってみます。
こちらもお手軽です。
GSONの入手
JSONを解析してくれるライブラリ「GSON」。
こちらのライブラリはGoogle先生謹製ですw
mavenを使って入手
pom.xmlは、こんな感じ。
1 2 3 4 5 6 | <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency> |
手動で入手
手動で入手するのであれば、以下のjarを入手することになります。
GSONは依存関係がないので、手動でも簡単に手に入れられますね。
https://mvnrepository.com/repos/central
- gson-2.10.1.jar
※2023年6月現在です。
ちなみに、Apache License 2.0で提供されています。
GSONを使って、JSONのリストデータをオブジェクトに変換するサンプル
3件の都道府県リストを持ったJSONデータから、Javaオブジェクトへ変換します。
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | import java.util.List; import com.google.gson.Gson; public class GsonTest1 { public static void main(String[] args) { //データの準備 String json = "{" + "\"prefList\": [" + "{" + " \"code\": \"01\"," + " \"name\": \"北海道\"," + " \"kana\": \"ほっかいどう\"" + "}," + "{" + " \"code\": \"02\"," + " \"name\": \"青森県\"," + " \"kana\": \"あおもりけん\"" + "}," + "{" + " \"code\": \"03\"," + " \"name\": \"岩手県\"," + " \"kana\": \"いわてけん\"" + "}" + "]" + "}"; System.out.println("-- 元データ --"); System.out.println(json); try { //データの解析 // Gsonオブジェクトの作成 Gson gson = new Gson(); // JSONデータをJavaオブジェクトに変換 PrefList prefList = gson.fromJson(json, PrefList.class); for(Pref pref : prefList.getPrefList()) { //解析結果を出力 System.out.println("-- 解析結果 --"); System.out.println(pref.getCode()); System.out.println(pref.getName()); System.out.println(pref.getKana()); } } catch (Exception e) { e.printStackTrace(); } } } class PrefList { private List<Pref> prefList; public List<Pref> getPrefList() { return prefList; } public void setPrefList(List<Pref> prefList) { this.prefList = prefList; } } class Pref { private String code; private String name; private String kana; public Pref() { } public Pref(String code, String name, String kana) { this.code = code; this.name = name; this.kana = kana; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getKana() { return kana; } public void setKana(String kana) { this.kana = kana; } } |
実行結果
3件の都道府県リストを持ったJSONデータをGSONでJavaオブジェクトに変換。
変換したオブジェクトを出力します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | -- 元データ -- {"prefList": [{ "code": "01", "name": "北海道", "kana": "ほっかいどう"},{ "code": "02", "name": "青森県", "kana": "あおもりけん"},{ "code": "03", "name": "岩手県", "kana": "いわてけん"}]} -- 解析結果 -- 01 北海道 ほっかいどう -- 解析結果 -- 02 青森県 あおもりけん -- 解析結果 -- 03 岩手県 いわてけん |
サンプルの解説
Gson#fromJson(String, Class)で、JSONの文字列からJavaオブジェクトへ変換できます。
第一引数に、JSON形式の文字列。第二引数に、変換先のオブジェクトのクラスを指定します。
これだけなので、簡単ですね。
※JSONにJacksonを使う場合のサンプルはこちら