はじめに
システム開発でAPI連携や設定ファイルを扱う際、JSON(JavaScript Object Notation) は今や欠かせないデータ形式です。JSONは軽量で人間にも読みやすく、Webアプリケーション・サーバ通信・設定ファイルなど、あらゆる場面で使われています。
今回は、JavaでJSONを取り扱う方法についてログとして記載していきたいと思います。
他にも、体系的にJavaを学びたい方には以下の教材がおすすめです:
👉スッキリわかるJava入門
👉スッキリわかるJava入門 実践編
Jsonとは
JSONは「JavaScript Object Notation」の略で、軽量かつ人間が読みやすいテキストベースのデータ形式です。プログラミング言語を問わずサポートされているため、Web開発やAPI連携等におけるデータ交換の標準的なフォーマットとして広く使われています。
構文
- オブジェクト: {} で囲み、キーと値のペアで構成
- 配列: [] で囲み、順序付きの要素を保持
- 値: 文字列、数値、真偽値、null、オブジェクト、配列
{
"id": 1,
"name": "Mori",
"skills": ["JavaScript", "Node.js"],
"active": true
}
JavaでJSONを扱う代表的なライブラリ
Javaには標準でJSONを扱う機能がありません。そのため、JavaでJSONを扱うには、以下のようなライブラリを使うのが一般的です。この記事では Jackson と Gson の使い方を紹介します。
| コレクション名 | 内容 |
| Jackson | 配高機能でSpring Bootなどでも標準採用 |
| Gson | Google製のライブラリ。軽量でシンプルな設計 |
Jacksonを使ったJSON処理
Jacksonは、Javaで最も有名なJSONライブラリの1つで、Spring Bootなど多くのフレームワークに標準採用されています。
ライブラリ導入方法(Maven)
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.0</version>
</dependency>
シリアライズ
ObjectMapperを使えば、JSON文字列を簡単にクラスに変換可能。- 型情報を自動的に解釈してくれるため、ネスト構造も柔軟に対応。
package com.example;
import com.fasterxml.jackson.databind.ObjectMapper;
class User {
public int id;
public String name;
}
public class App {
public static void main(String[] args) throws Exception {
User user = new User();
user.id = 1;
user.name = "mori";
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(user);
System.out.println(json);
}
}
デシリアライズ
ObjectMapperを使えば、JSON文字列を簡単にクラスに変換可能。- 型情報を自動的に解釈してくれるため、ネスト構造も柔軟に対応。
package com.example;
import com.fasterxml.jackson.databind.ObjectMapper;
class User {
public int id;
public String name;
}
public class App {
public static void main(String[] args) throws Exception {
User user = new User();
user.id = 1;
user.name = "mori";
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(user);
System.out.println(json);
User user2= mapper.readValue(json, User.class);
System.out.println(user2.name + " (" + user2.id + ")");
mapper.writeValue(new File("output.json"), user2);
}
}
Gsonを使ったJSON処理
GsonはGoogleが開発した軽量ライブラリで、設定不要なAPI が特徴です。
小規模ツール開発でも広く利用されています。
ライブラリ導入方法(Maven)
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.11.0</version>
</dependency>
シリアライズ
package com.example;
import com.google.gson.Gson;
import package1.User;
class User {
public int id;
public String name;
}
public class App {
public static void main(String[] args) {
User u = new User();
u.id = 1;
u.name = "mori";
Gson gson = new Gson();
String json = gson.toJson(u);
System.out.println(json);
}
}
デシリアライズ
package com.example;
import com.google.gson.Gson;
import package1.User;
class User {
public int id;
public String name;
}
public class App {
public static void main(String[] args) {
User u = new User();
u.id = 1;
u.name = "mori";
Gson gson = new Gson();
String json = gson.toJson(u);
System.out.println(json);
User u2 = gson.fromJson(json, User.class);
System.out.println(u.name + " (" + u2.id + ")");
try (Writer writer = new FileWriter("user.json")) {
gson.toJson(u, writer);
}
}
}
まとめ
JavaでJSONを扱う力は、API開発・設定管理・ログ処理など、すべての開発フェーズで役立ちます。
使い分けとして以下の点を考慮して、今後も開発していきましょう。
- Jackson:大規模開発・Spring Bootとの統合が強み
- Gson:軽量で使いやすく、シンプルなツール開発に最適
ドキュメント
【公式ドキュメント】
Java SE Specifications (oracle.com)
最後に
Javaの環境構築は、この記事を参照してみてください。
【開発環境構築】VS CodeでJavaを使用するための環境構築を実施する – SEもりのLog (selifemorizo.com)
以上、ログになります。
これからも継続していきましょう!!


コメント