1. 概要

この短いチュートリアルでは、GsonJavaライブラリを使用してKotlinのデータクラスをJSON文字列に変換する方法とその逆の方法について説明します。

2. Mavenの依存関係

始める前に、 Gsonpom.xml:に追加しましょう。

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>

3. Kotlinデータクラス

まず、記事の後半でJSON文字列に変換するデータクラスを作成しましょう。

data class TestModel(
    val id: Int,
    val description: String
)

TestModel クラスは、idnameの2つの属性で構成されています。 したがって、Gsonに期待するJSON文字列は次のようになります。

{"id":1,"description":"Test"}

4. データクラスからJSON文字列への変換

これで、Gsonを使用してTestModelクラスのオブジェクトをJSONに変換できます。

var gson = Gson()
var jsonString = gson.toJson(TestModel(1,"Test"))
Assert.assertEquals(jsonString, """{"id":1,"description":"Test"}""")

この例では、 Assert を使用して、Gsonからの出力が期待値と一致するかどうかを確認しています。

5. JSON文字列からデータクラスへの変換

もちろん、JSONからデータオブジェクトに変換する必要がある場合もあります。

var jsonString = """{"id":1,"description":"Test"}""";
var testModel = gson.fromJson(jsonString, TestModel::class.java)
Assert.assertEquals(testModel.id, 1)
Assert.assertEquals(testModel.description, "Test")

ここでは、 GsonはJavaライブラリであり、Javaクラスのみを受け入れるため、 TestModel :: class.java を使用するようにGsonに指示することにより、JSON文字列をTestModelオブジェクトに変換しています。

最後に、結果オブジェクトに元の文字列に正しい値が含まれているかどうかをテストします。

6. 結論

この簡単な記事では、KotlinでGsonを使用してKotlin データクラスをJSON文字列に、またはその逆に変換する方法について説明しました。

すべての例は、いつものように、GitHubにあります。