JavaでオブジェクトをJSON文字列に変換したり、JSON文字列をオブジェクトに変換したりする方法を説明します。
ライブラリのインポート
変換を行うには、Jacksonというライブラリのインポートが必要です。
gradleを使っている場合は、build.gradle
のdependencies
に以下を追記します。
dependencies { implementation 'com.fasterxml.jackson.core:jackson-databind' }
mavenを使っている場合は、pom.xml
に同様に追記してください。
オブジェクトをJSON文字列に変換する方法
以下のクラスが存在するとします。ゲッターとセッターはLombokを使って自動で追加しています。
import lombok.Getter; import lombok.Setter; @Getter @Setter public class Human { private String name; private int age; }
このとき、オブジェクトをJSON文字列に変換する方法は以下の通りです。
ObjectMapper mapper = new ObjectMapper(); Human human = new Human; human.setName("山本"); human.setAge(30); String json = mapper.writeValueAsString(human); // 以下が出力されます // {"name":"田中","age":30} System.out.println(json);
JSON文字列をオブジェクトに変換する
上記の例はオブジェクトからJSON文字列への変換でしたが、逆も可能です。
以下の内容のJSONが存在するとします。
{"name":"山本","age":30}
このJSONをHumanクラスに変換する方法は以下の通りです。
ObjectMapper mapper = new ObjectMapper(); String json = readFile("{上記のJSONのパスをここに記述}"); Human human = mapper.readValue(json, Human.class); // 以下が出力されます // 山本 // 30 System.out.println(human.getName()); System.out.println(human.getAge());