はじめに
JSON(JavaScript Object Notation)は、軽量のデータ交換形式です。読み書きが簡単で、クライアントとサーバー間のデータ交換に広く使用されています。この実験では、Jackson、Gson、Genson、および Json-io などの人気のある Java JSON ライブラリを使用して、オブジェクトを JSON 形式にシリアライズおよび逆シリアライズする方法を学びます。
プロジェクトのセットアップ
- ターミナルを開き、
cd ~/projectを実行してプロジェクトディレクトリに移動します。 - ターミナルで
touch JsonLab.javaコマンドを実行して、この実験用の新しい Java ファイルを作成し、次のコードを貼り付けます。
import java.io.IOException;
public class JsonLab {
public static void main(String[] args) throws IOException {
ClassA classAObj = new ClassA("Demo", 20.0); // 後でシリアライズおよび逆シリアライズするオブジェクトを作成する
}
// ここに ClassA クラスを追加する
}
Jackson ライブラリの使用
- Jackson を使用するには、
pom.xmlファイルに Jackson の Maven 依存関係を追加する必要があります。
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>
- 次に、
ObjectMapperクラスを使用してオブジェクトを JSON 文字列にシリアライズおよび逆シリアライズする必要があります。以下のようになります。
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonLab {
public static void main(String[] args) throws IOException {
ObjectMapper objMapper = new ObjectMapper();
ClassA classAObj = new ClassA("Demo", 20.0);
// シリアライズ
String jsonString = objMapper.writeValueAsString(classAObj);
System.out.println("シリアライズされた文字列:" + jsonString);
// 逆シリアライズ
ClassA objFromStr = objMapper.readValue(jsonString, ClassA.class);
System.out.print("逆シリアライズされたオブジェクト:" + objFromStr.getField1() + " " + objFromStr.getField2());
}
}
Gson ライブラリの使用
- Gson を使用するには、
pom.xmlファイルに Gson の Maven 依存関係を追加する必要があります。
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
</dependencies>
- 次に、
Gsonオブジェクトを使用してオブジェクトをシリアライズおよび逆シリアライズする必要があります。以下のようになります。
import com.google.gson.Gson;
public class JsonLab {
public static void main(String[] args) throws IOException {
Gson gson = new Gson();
ClassA obj = new ClassA("Demo", 20.0);
// シリアライズ
String jsonStrFromObj = gson.toJson(obj);
System.out.println("シリアライズされた文字列:" + jsonStrFromObj);
// 逆シリアライズ
ClassA objFromJsonStr = gson.fromJson(jsonStrFromObj, ClassA.class);
System.out.print("逆シリアライズされたオブジェクト:" + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
}
}
Genson ライブラリの使用
- Genson を使用するには、
pom.xmlファイルに Genson の Maven 依存関係を追加する必要があります。
<dependencies>
<dependency>
<groupId>com.owlike</groupId>
<artifactId>genson</artifactId>
<version>${genson.version}</version>
</dependency>
</dependencies>
- 次に、
Gensonオブジェクトを使用してオブジェクトをシリアライズおよび逆シリアライズする必要があります。以下のようになります。
import com.owlike.genson.Genson;
public class JsonLab {
public static void main(String[] args) throws IOException {
Genson genson = new Genson();
ClassA obj = new ClassA("Demo", 20.0);
// シリアライズ
String jsonStrFromObj = genson.serialize(obj);
System.out.println("シリアライズされた文字列:" + jsonStrFromObj);
// 逆シリアライズ
ClassA objFromJsonStr = genson.deserialize(jsonStrFromObj, ClassA.class);
System.out.print("逆シリアライズされたオブジェクト:" + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
}
}
Json-io ライブラリの使用
- Json-io ライブラリを使用するには、
pom.xmlファイルに Json-io の Maven 依存関係を追加する必要があります。
<dependencies>
<dependency>
<groupId>com.cedarsoftware</groupId>
<artifactId>json-io</artifactId>
<version>${json-io.version}</version>
</dependency>
</dependencies>
- 次に、
JsonWriterとJsonReaderを使用してオブジェクトをシリアライズおよび逆シリアライズする必要があります。以下のようになります。
import com.cedarsoftware.util.io.JsonReader;
import com.cedarsoftware.util.io.JsonWriter;
public class JsonLab {
public static void main(String[] args) throws IOException {
ClassA obj = new ClassA("Demo", 20.0);
// シリアライズ
String jsonStrFromObj = JsonWriter.objectToJson(obj);
System.out.println("シリアライズされた文字列:" + jsonStrFromObj);
// 逆シリアライズ
ClassA objFromJsonStr = (ClassA) JsonReader.jsonToJava(jsonStrFromObj);
System.out.print("逆シリアライズされたオブジェクト:" + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
}
}
まとめ
この実験では、オブジェクトを JSON 形式に変換する方法とその逆の方法を学ぶために、さまざまな Java の JSON ライブラリをどのように使用するかを学びました。Jackson、Gson、Genson、および Json-io ライブラリを使用して、オブジェクトを JSON にシリアライズおよび逆シリアライズする方法を学びました。



