カレンダーを見たら、今年は13日の金曜日が2回あるらしい。。
毎年1回ぐらいはあるのかな?
Jacksonを使って、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 | import java.util.List; import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonTest2 { 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 { //データの解析 ObjectMapper objectMapper = new ObjectMapper(); PrefList prefList = objectMapper.readValue(json, PrefList.class); for(int i=0 ; i<prefList.getPrefList().size() ; i++) { Pref pref = prefList.getPrefList().get(i); //解析結果を出力 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 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; } } |
実行結果
JSONの都道府県データをJavaオブジェクトに変換。
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 岩手県 いわてけん |
サンプルの解説
今回はリストのJSONでした。
前回同様、変換はObjectMapper#readValue(String, Class)です。
リストでも特別なことはありません。
ただし、変換先のオブジェクトのクラスは、2つ用意してあります。
1つは前回と同じ都道府県のクラスPref。もう1つはリストのPrefList。
こんな感じで2つ用意しておくと変換することができます。
※このコードを使用するには、別途Jacksonの入手が必要です。
入手方法などは前回の記事に書いてありますので、こちらからどうぞ。