概要
JavaでJSONを扱う際にオブジェクトに入れるという方法があると思います。
いくつか方法がありますがGsonを用いて変換します
実装
JSONファイル
読み込むJSONファイル
{
"name": "taro",
"age": 20,
"others": {
"country": "Japan",
"address": "TOKYO"
}
}
Gson読み込み
今回はGradleプロジェクトで読み込みます。
下記よりバージョンを選択し、「build.gradle」に追加します。
https://mvnrepository.com/artifact/com.google.code.gson/gson
dependencies {
implementation group: 'com.google.code.gson', name: 'gson', version: '2.9.1'
}
Java
package com.example.demo;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import com.google.gson.Gson;
public class DemoApplication {
public static void main(String[] args) {
Path path = Paths.get("./src/main/java/com/example/demo/Practice.json");
Gson gson = new Gson();
String content = null;
try {
content = Files.readString(path);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Bean bean = gson.fromJson(content, Bean.class);
System.out.print(bean.getOtherBean().getAddress());
}
}
以下Beanクラス
package com.example.demo;
public class Bean {
private String name;
private int age;
private OtherBean others;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public OtherBean getOtherBean() {
return others;
}
public void setOtherBean(OtherBean otherBean) {
this.others = otherBean;
}
}
package com.example.demo;
public class OtherBean {
private String country;
private String address;
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
実行するとコンソール上に「TOKYO」と出力されます。
説明
「gson.fromJson」でオブジェクトに変換しています。
実施する前にJSONファイルは「Files.readString」で文字列に変換しています。
JSONファイルには「others」でさらに階層が深くなっている箇所があります。
「others」配下の値もオブジェクトに変換できるようそれようの「OtherBean」を作成しています。
その中の「address」を表示しています。
Gsonを利用すれば、オブジェクトからJSONへ変換することもできるようです。
参考文献
gson/UserGuide.md at master · google/gson
A Java serialization/deserialization library to convert Java Objects into JSON and back - gson/UserGuide.md at master · google/gson