JSON を Java オブジェクトに変換する
Mohammad Irfan
2023年10月12日
このチュートリアルでは、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
- Java で JSON データを文字列に変換する
- Java で JSON をデシリアライズする
- Java でオブジェクトを JSON にシリアライズする
- Java での JSON データのプリティプリント
- Java での JSON 配列の処理
- Java で XML を JSON に変換する