GSONを使用してJSONからKotlinデータクラスを変換する

1概要

この短いチュートリアルでは、Gson Javaライブラリを使用して、Kotlinの data class をJSON文字列に、またはその逆に変換する方法について説明します。

2 Mavenの依存関係

始める前に、https://search.maven.org/search?q=g:com.google.code.gson%20AND%20a:gson[Gson]を__pom.xmlに追加しましょう。

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

3コトリン データクラス

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

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

TestModel クラスは、 id name の2つの属性で構成されています。

したがって、Gsonに期待されるJSON文字列は次のようになります。

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

4 Data Class からJSON String への変換

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

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

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

5 JSON文字列から Dataクラス への変換

もちろん、時々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")
ここでは、____TestModel

class.javaを使用するようにGsonに指示することによって、JSON文字列を TestModel オブジェクトに変換します。

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

6. 結論

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

すべての例は、いつものようにhttps://github.com/eugenp/tutorials/tree/master/core-kotlin[GitHubに追加]を見つけることができます。