JSON を Java オブジェクトに変換する

Mohammad Irfan 2023年10月12日
  1. Java の Gson ライブラリを使用して JSON を Java オブジェクトに変換する
  2. Java の Jackson ライブラリを使用して JSON を Java オブジェクトに変換する
JSON を Java オブジェクトに変換する

このチュートリアルでは、JSON を Java で Java オブジェクトに変換する方法を紹介します。

JSON を Java オブジェクトに変換するには、Jackson や Gson などのいくつかのライブラリを使用できます。Jackson は、Apache によって作成された Java ベースの JSON 処理ライブラリです。同様に、Gson は JSON の処理に使用され、Google によって作成されます。両方のライブラリを使用して JSON を Java オブジェクトに変換したり、その逆を行ったりすることができます。

それでは、始めて、いくつかの実用的な例を見てみましょう。

Java の Gson ライブラリを使用して JSON を Java オブジェクトに変換する

この例では、Gson ライブラリとその Gson クラスを使用して、JSON データを読み取り、指定されたタイプ(Student)に変換します。変換後、Student クラスのゲッターを使用してデータを取得できます。以下の例を参照してください。

import com.google.gson.Gson;

public class SimpleTesting {
  public static void main(String[] args) throws InterruptedException {
    String json = "" "
    {
      "firstName" : "Rohan",
                    "lastName" : "Singh",
                                 "dateOfBirth" : "1990-12-15",
                                                 "address" : "34/Art",
                                                             "city" : "California",
                                                                      "contact" : "85652321"
    }
    "" ";
        Student data = new Gson().fromJson(json, Student.class);
    System.out.println(data.getFirstName());
    System.out.println(data.getLastName());
    System.out.println(data.getCity());
  }
}

class Student {
  private String firstName;
  private String lastName;
  private String dateOfBirth;
  private String address;
  private String city;
  private String contact;

  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 String getDateOfBirth() {
    return dateOfBirth;
  }
  public void setDateOfBirth(String dateOfBirth) {
    this.dateOfBirth = dateOfBirth;
  }
  public String getAddress() {
    return address;
  }
  public void setAddress(String address) {
    this.address = address;
  }
  public String getCity() {
    return city;
  }
  public void setCity(String city) {
    this.city = city;
  }
  public String getContact() {
    return contact;
  }
  public void setContact(String contact) {
    this.contact = contact;
  }
}

出力:

Rohan
Singh
California

Java の Jackson ライブラリを使用して JSON を Java オブジェクトに変換する

Jackson ライブラリとその ObjectMapper クラスを使用して、JSON データを読み取り、指定されたタイプ(Student)に変換しました。変換後、Student クラスのゲッターを使用してデータを取得できます。

以下の例を参照してください。

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import java.io.File;
import java.io.IOException;
public class SimpleTesting {
  public static void main(String[] args) throws InterruptedException {
    ObjectMapper mapper = new ObjectMapper();
    mapper.enable(SerializationFeature.INDENT_OUTPUT);
    try {
      Student student = mapper.readValue(new File("json-file.json"), Student.class);
      System.out.println("First Name: " + student.getFirstName());
      System.out.println("Last Name: " + student.getLastName());
      System.out.println("City: " + student.getCity());
      System.out.println("Address: " + student.getAddress());
      System.out.println("Contact: " + student.getContact());
      System.out.println("Date of Birth: " + student.getDateOfBirth());
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

class Student {
  private String firstName;
  private String lastName;
  private String dateOfBirth;
  private String address;
  private String city;
  private String contact;

  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 String getDateOfBirth() {
    return dateOfBirth;
  }
  public void setDateOfBirth(String dateOfBirth) {
    this.dateOfBirth = dateOfBirth;
  }
  public String getAddress() {
    return address;
  }
  public void setAddress(String address) {
    this.address = address;
  }
  public String getCity() {
    return city;
  }
  public void setCity(String city) {
    this.city = city;
  }
  public String getContact() {
    return contact;
  }
  public void setContact(String contact) {
    this.contact = contact;
  }
}

出力:

First Name: Rohan
Last Name: Singh
City: California
Address: 34/Art
Contact: 85652321
Date of Birth: 1990-12-15

関連記事 - Java JSON

関連記事 - JSON Object