- 開発技術
JSONデシリアライズしてクラスのプロパティに紐づける
- #Java

デシリアライズとは
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
・JSONのデシリアライズとは、JSON形式の文字列をメモリ上のオブジェクトやデータ構造に復元することです。
・逆の操作もあり、それをシリアライズと言います。シリアライズは、プログラム上のデータをJSON形式に変換することです。
JSONデータをデシリアライズする方法
まずデータに合わせたクラスとプロパティを作成します。
JSONのデータ
{{“Area”:”Japan”,Capital”:”Tokyo”, “Area”:”America”,Capital”:Washington”}}
・クラスを作成
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
public class Country { private String area; private String capital; public String getArea() { return area; } public void setArea(String area) { this.area = area; } public String getCapital() { return capital } public void setCapital(String capital) { this.capital = capital; } |
Javaでの実装例
Javaでは、JSONを扱うライブラリとしてJacksonを使用することが多いです。
Maven依存関係
|
1 2 3 4 5 |
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.17.1</version> </dependency> |
Jsonをデシリアライズする
|
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 |
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.List; public class Main { public static void main(String[] args) { try { String json = """ [ { "area": "Japan", "capital": "Tokyo" }, { "area": "America", "capital": "Washington" } ] """; ObjectMapper mapper = new ObjectMapper(); List<Country> countries = mapper.readValue(json, new TypeReference<List<Country>>() {}); for (Country country : countries) { System.out.println("国名:" + country.getArea()); System.out.println("都市:" + country.getCapital()); System.out.println("----------------"); } } catch (Exception e) { e.printStackTrace(); } } } |
実行結果
|
1 2 3 4 5 6 |
国名:Japan 都市:Tokyo ---------------- 国名:America 都市:Washington ---------------- |
まとめ
・デシリアライズとは、JSON文字列をオブジェクトへ変換する処理
・JavaではJacksonライブラリを使用すると簡単にJSONを扱える。
・ObjectMapper.readValue() を使うことで、JSONデータをクラスへ変換できる。
・JSONキー名とクラスのプロパティ名を一致させることで自動で値が紐づく。
・複数データを扱う場合は [] を使用したJSON配列にする必要がある。
・JSON形式が崩れている場合は JsonParseException などのエラーが発生する。
JSONのデシリアライズを利用することで、APIレスポンスや設定ファイルなどのJSONデータを、Javaのオブジェクトとして簡単に扱えるようになります。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>



