Webエンジニアのメモ帳

技術的な話を中心に書いています。

【Java】JSON⇄オブジェクトの変換を行う

JavaでオブジェクトをJSON文字列に変換したり、JSON文字列をオブジェクトに変換したりする方法を説明します。

ライブラリのインポート

変換を行うには、Jacksonというライブラリのインポートが必要です。

gradleを使っている場合は、build.gradledependenciesに以下を追記します。

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());