Java
 Computer >> コンピューター >  >> プログラミング >> Java

【Java入門】Gsonライブラリを使ってJSON文字列をファイルに書き込む方法

Gsonライブラリとは

Gsonは、JavaオブジェクトをJSON形式に変換(シリアライズ)するためのGoogle製オープンソースライブラリです。逆に、JSON文字列からJavaオブジェクトへの変換(デシリアライズ)も簡単に行えるため、JavaでJSONを扱う際の定番ライブラリとして広く利用されています。

Gsonを使用する際の中心的なクラスはGsonクラスです。インスタンスはnew Gson()のように直接生成できますが、設定をカスタマイズしたい場合はGsonBuilderクラスを使ってGsonインスタンスを作成することも可能です。

この記事では、Gsonクラスが提供するtoJson()メソッドを使用して、JSON文字列をファイルに書き込む方法をサンプルコードとともに解説します。

JSON文字列をファイルに書き込むサンプルコード

以下の例では、StudentクラスのオブジェクトをGsonのtoJson()メソッドを使って「Student.json」というファイルに出力しています。

import java.io.*;
import com.google.gson.*;

public class JSONToFileTest {
    public static void main(String[] args) throws IOException {
        // Gsonインスタンスを作成
        Gson gson = new Gson();

        // 書き込み先ファイルを指定
        FileWriter fileWriter = new FileWriter("Student.json");

        // Studentオブジェクトを生成
        Student student = new Student("Raja", "Ramesh", 30, "Hyderabad");

        // オブジェクトをJSONとしてファイルに書き込み
        gson.toJson(student, fileWriter);
        fileWriter.close();

        System.out.println("JSON string write to a file successfully");
        System.out.println(student);
    }
}

// Studentクラス
class Student {
    private String firstName;
    private String lastName;
    private int age;
    private String address;

    public Student(String firstName, String lastName, int age, String address) {
        super();
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
        this.address = address;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String toString() {
        return "Student[ " +
                "firstName = " + firstName +
                ", lastName = " + lastName +
                ", age = " + age +
                ", address = " + address +
                " ]";
    }
}

コードのポイント

  • Gson gson = new Gson(); — Gsonインスタンスを生成します。
  • FileWriter fileWriter = new FileWriter("Student.json"); — 出力先となるファイルを開きます。
  • gson.toJson(student, fileWriter); — オブジェクトをJSON文字列に変換し、そのままファイルに書き込みます。
  • fileWriter.close(); — リソースリークを防ぐため、処理後は必ずストリームを閉じます。なお、try-with-resources構文を使えばより安全に記述できます。

出力結果:Student.jsonファイル

プログラムを実行すると、プロジェクト直下に以下のような内容の「Student.json」ファイルが生成されます。

{"firstName":"Raja","lastName":"Ramesh","age":30,"address":"Hyderabad"}

コンソール出力

JSON string write to a file successfully
Student[ firstName = Raja, lastName = Ramesh, age = 30, address = Hyderabad ]

まとめ

GsonのtoJson()メソッドとFileWriterを組み合わせれば、Javaオブジェクトをわずか数行のコードでJSONファイルとして保存できます。整形された読みやすいJSONを出力したい場合は、GsonBuilderのsetPrettyPrinting()メソッドを使うのもおすすめです。APIレスポンスの保存や設定ファイルの生成など、さまざまな場面で活用できるテクニックなので、ぜひ覚えておきましょう。

  1. 【Java】JSONオブジェクトをファイルに書き込む方法(json-simpleライブラリの使い方)

    JSON(JavaScript Object Notation)は、現在もっとも広く使われているデータ交換フォーマットのひとつです。軽量であることと、特定のプログラミング言語に依存しないことが大きな特徴で、異なるシステム間でのデータやり取りに最適です。 JavaでJSONファイルを読み書きするには、json-simple ライブラリが便利です。json-simpleは軽量なJSON処理ライブラリで、JSONテキストのエンコード(書き込み)とデコード(読み込み)の両方に対応しており、JSON仕様(RFC4627)に完全準拠しています。 ライブラリの準備 json-simpleを使用するには、まず

  2. JavaでJSONファイルを作成する方法をわかりやすく解説

    JSON(JavaScript Object Notation)は、人間が読みやすい形式でデータを交換するために設計された、軽量なテキストベースのオープン標準フォーマットです。JSONの記法は、C、C++、Java、Python、Perlなど、多くのプログラミング言語に精通したプログラマーにとって馴染み深いものとなっています。 JSONドキュメントのサンプル 以下は、書籍情報を格納した典型的なJSONドキュメントの例です。 { book: [ { id: 01, language: Java, ed