【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レスポンスの保存や設定ファイルの生成など、さまざまな場面で活用できるテクニックなので、ぜひ覚えておきましょう。
-
【Java】JSONオブジェクトをファイルに書き込む方法(json-simpleライブラリの使い方)
JSON(JavaScript Object Notation)は、現在もっとも広く使われているデータ交換フォーマットのひとつです。軽量であることと、特定のプログラミング言語に依存しないことが大きな特徴で、異なるシステム間でのデータやり取りに最適です。 JavaでJSONファイルを読み書きするには、json-simple ライブラリが便利です。json-simpleは軽量なJSON処理ライブラリで、JSONテキストのエンコード(書き込み)とデコード(読み込み)の両方に対応しており、JSON仕様(RFC4627)に完全準拠しています。 ライブラリの準備 json-simpleを使用するには、まず
-
JavaでJSONファイルを作成する方法をわかりやすく解説
JSON(JavaScript Object Notation)は、人間が読みやすい形式でデータを交換するために設計された、軽量なテキストベースのオープン標準フォーマットです。JSONの記法は、C、C++、Java、Python、Perlなど、多くのプログラミング言語に精通したプログラマーにとって馴染み深いものとなっています。 JSONドキュメントのサンプル 以下は、書籍情報を格納した典型的なJSONドキュメントの例です。 { book: [ { id: 01, language: Java, ed