[Java] Jsonタイプのデータを使う方法(Gsonライブラリ)
こんにちは。明月です。
この投稿はJavaでJsonタイプのデータを使う方法に関する説明です。
Jsonデータは「キー:値」になっているデータオブジェクトで人間が読めるテキスト形式の開放型標準フォーマットということです。
JavaでデータオブジェクトをJsonタイプに変換するためにはGoogleで提供するGsonのライブラリを使います。
まず、MavenでGsonを登録してライブラリを連結しましょう。
Reference - https://mvnrepository.com/artifact/com.google.code.gson/gson
maven repositoryに接続してGsonの最新Maven情報を読み込みます。
私はEclipseを利用するのでEclipseのpom.xmlに登録します。
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
登録した後、maven updateをしてライブラリを連結します。
そしてテストクラスを作成して試してみましょう。
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
class Example {
// Jsonタイプに変換するようなクラス
class JsonExample {
// jsonキー名に設定する。(もし、このアノテーションが設定なければ変数名がキー名になる。)
@SerializedName("Data1")
private int data1;
// jsonキー名
@SerializedName("Data2")
private String data2;
// data1のgetterプロパティ
public int getData1() {
return data1;
}
// data1のsetterプロパティ
public void setData1(int data1) {
this.data1 = data1;
}
// data2のgetterプロパティ
public String getData2() {
return data2;
}
// data2のsetterプロパティ
public void setData2(String data2) {
this.data2 = data2;
}
}
// 実行関数
public static void main(String[] args) {
// Jsonタイプのデータ
String json = "{ \"Data1\": 1, \"Data2\":\"TEST\" }";
// Jsonタイプのstring値をJsonExmpleタイプに変換
Gson gson = new Gson();
// Jsonタイプをクラスに変換する。キー名と変数名やアノテーション(SerializedName)と一致することでデータが格納
JsonExample obj = gson.fromJson(json, JsonExample.class);
// 結果は1
System.out.println(obj.getData1());
// 結果はTEST
System.out.println(obj.getData2());
// data1は「10」に格納
obj.setData1(10);
// data2は「Hello world」に格納
obj.setData2("Hello world");
// インスタンスデータをjsonタイプに変換する。
json = gson.toJson(obj);
// 結果値は {"Data1":10,"Data2":"Hello world"}
System.out.println(json);
}
}
以前にシリアライズに関して説明したことがあります。
link - [Java] シリアライズ(直列化: Serializable)
シリアライズとかJsonタイプに変換するのはデータをStringタイプに変換することができることです。
結果は違いますが、仕様によって各良い点があるし悪い点があるでしょう。
シリアライズはクラスのインスタンスをバイナリ化することなので、見えない変数(private)までデータが変換します。でも人間が読みにくいデータ構造に変換します。
Jsonの場合はプロパティがないデータ(getterがない変数)ならjsonタイプに変換することは限界があります。でも人間が読みやすいテキストテキストに変換します。意味はデータ構造の直接に修正ができることです。
プロジェクトの仕様によってシリアライズかJsonタイプかに選択して使いましょう。
ここまでJavaでJsonタイプのデータを使う方法に関する説明でした。
ご不明なところや間違いところがあればコメントしてください。
- [Java] サーブレット(Servlet)の環境でファイルアップロード(プログレスバーでファイルアップロード状態を表示する方法)する方法2020/03/24 00:48:21
- [Java] Spring環境でファイルアップロード(プログレスバーでファイルアップロード状態を表示する方法)する方法2020/03/22 23:15:12
- [Java] FTPに接続してファイルをダウンロード、アップロードする方法(FTPClient)2020/03/20 02:44:36
- [Java] JSPのSpring環境でschedulerのcronを使う方法2020/03/18 00:24:32
- [Java] POIを利用してExcelを扱う方法2020/03/17 01:48:00
- [Java] PDFを出力する方法(itextpdf)2020/03/13 00:47:31
- [Java] ログライブラリ(log4j)を使う方法2020/03/12 00:54:39
- [Java] Jsonタイプのデータを使う方法(Gsonライブラリ)2020/03/11 00:30:15
- [Java] Base64をエンコード、デコードする方法2020/03/09 10:24:01
- [Java] cmdコマンドを実行するための方法2020/03/06 18:01:10
- [Java] メール(javax.mail)を発送する方法2020/03/05 20:07:49
- [Java] クラス複製(Clonable, Reflection)2020/03/05 00:03:19
- [Java] シリアライズ(直列化: Serializable)2020/03/03 00:03:33
- [Java] StringBuilderとStringBufferの差異2020/03/02 07:52:22
- [Java] Compare関数を使う方法2020/02/29 03:00:00
- check2024/04/10 19:03:53
- [Java] 64.Spring bootとReactを連結する方法(Buildする方法)2022/03/25 21:02:18
- [Javascript] Node.jsをインストールしてReactを使う方法2022/03/23 18:01:34
- [Java] 63. Spring bootでcronスケジューラとComponentアノテーション2022/03/16 18:57:30
- [Java] 62. Spring bootでWeb-Filterを設定する方法(Spring Security)2022/03/15 22:16:37
- [Java] JWT(Json Web Token)を発行、確認する方法2022/03/14 19:12:58
- [Java] 61. Spring bootでRedisデータベースを利用してセッションクラスタリング設定する方法2022/03/01 18:20:52
- [Java] 60. Spring bootでApacheの連結とロードバランシングを設定する方法2022/02/28 18:45:48
- [Java] 59. Spring bootのJPAでEntityManagerを使い方2022/02/25 18:27:48
- [Java] 58. EclipseでSpring bootのJPAを設定する方法2022/02/23 18:11:10
- [Java] 57. EclipseでSpring bootを設定する方法2022/02/22 19:04:49
- [Python] Redisデータベースに接続して使い方2022/02/21 18:23:49
- [Java] Redisデータベースを接続して使い方(Jedisライブラリ)2022/02/16 18:13:17
- [C#] Redisのデータベースを接続して使い方2022/02/15 18:46:09
- [CentOS] Redisデータベースをインストールする方法とコマンドを使い方2022/02/14 18:33:07