【Java】JSONを扱う方法(JacksonとGsonライブラリについて)

Java

はじめに

システム開発で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などでも標準採用
GsonGoogle製のライブラリ。軽量でシンプルな設計

 

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)

以上、ログになります。
これからも継続していきましょう!!

Javaサーバーサイド関連
シェアする
おすすめIT本
良いコード/悪いコードで学ぶ設計入門

「ITエンジニア本大賞2023」技術書部門で大賞を受賞した本です。
・コードの可読性
・普段意識したほうが良いこと
・リファクタリング考え方
等、普段のコードを設計する際に意識することが書かれています。
コードのあるべき姿に迷ったら一度読んでみると良い本です。

仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

Dockerって何?となったときに私が最初に読んだ本です。
Dockerがどんな仕組みで動いているのか、コマンドでは何を命令しているのかを理解できるように、イラストを多用して説明しています。

1冊ですべて身につくJavaScript入門講座

「ITエンジニア本大賞2024」技術書部門で大賞を受賞した本です。
私が次に読もうと思っている本なのでおすすめとして挙げておきたいと思います。

コメント

タイトルとURLをコピーしました