13日の金曜日。たまには放送してほしいよねぇ。
Jacksonの入手
JSONを解析してくれるライブラリ「Jackson」。
まずはこれを手に入れましょう。
mavenを使って入手
pom.xmlは、こんな感じ。
1 2 3 4 5 6 | <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.0</version> </dependency> |
手動で入手
手動で入手するのであれば、以下のjarを入手することになります。
mavenを使った方が簡単ですが。。ここで探すことはできます。
https://mvnrepository.com/repos/central
- jackson-annotations-2.15.0.jar
- jackson-core-2.15.0.jar
- jackson-databind-2.15.0.jar
※2023年4月現在です。
ちなみに、これらはApache License 2.0で提供されています。
Jacksonを使って、JSONデータをオブジェクトに変換するサンプル
都道府県のコード、名称、かなのJSONデータをJacksonで解析。
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 | import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonTest { public static void main(String[] args) { //データの準備 String json = "{" + " \"code\": \"01\"," + " \"name\": \"北海道\"," + " \"kana\": \"ほっかいどう\"" + "}"; System.out.println("-- 元データ --"); System.out.println(json); try { //データの解析 ObjectMapper objectMapper = new ObjectMapper(); Pref pref = objectMapper.readValue(json, Pref.class); //解析結果を出力 System.out.println("-- 解析結果 --"); System.out.println(pref.getCode()); System.out.println(pref.getName()); System.out.println(pref.getKana()); } catch (Exception e) { e.printStackTrace(); } } } 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データより、都道府県のコード、名称、かなを持ったクラスPrefのオブジェクトを生成。
生成されたオブジェクトの中身が表示されます。
1 2 3 4 5 6 | -- 元データ -- { "code": "01", "name": "北海道", "kana": "ほっかいどう"} -- 解析結果 -- 01 北海道 ほっかいどう |
サンプルの解説
ObjectMapper#readValue(String, Class)を使うと、JSONデータをJavaオブジェクトに変換してくれます。
また、変換するオブジェクトのクラスには、デフォルトコンストラクタが必要です。