Konvertierung der Kotlin-Datenklasse aus JSON mit GSON

Konvertieren der Kotlin-Datenklasse von JSON mit GSON

1. Überblick

In diesem kurzen Tutorial werden wir diskutieren, wie manconvert a data class in Kotlin to JSON string and vice versa using Gson Java library. macht

2. Maven-Abhängigkeit

Bevor wir beginnen, fügen wirGson zu unserenpom.xml: hinzu


    com.google.code.gson
    gson
    2.8.5

3. KotlinData Class

Zunächst erstellen wir eindata class, das in den späteren Teilen des Artikels in eine JSON-Zeichenfolge konvertiert wird:

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

Die KlasseTestModel besteht aus 2 Attributen:id undname. Daher würde der von Gson erwartete JSON-String folgendermaßen aussehen:

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

4. Konvertieren vonData Class in JSON-Zeichenfolge

Jetzt können wir Gson fürconvert objects of TestModel class to JSON verwenden:

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

In diesem Beispiel verwenden wirAssert, um zu überprüfen, ob die Ausgabe von Gson unserem erwarteten Wert entspricht.

5. Konvertieren von JSON-Zeichenfolge inData Class

Natürlich müssen wir manchmalconvert from JSON to data objects:

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

Hier konvertieren wir die JSON-Zeichenfolge in einTestModel-Objekt, indem wir Gson anweisen,TestModel::class.java asGson is a Java library and only accepts Java class zu verwenden.

Schließlich testen wir, ob das Ergebnisobjekt die richtigen Werte in der ursprünglichen Zeichenfolge enthält.

6. Fazit

In diesem kurzen Artikel haben wir erläutert, wie Sie Gson in Kotlin verwenden, um Kotlindata class in JSON-Zeichenfolgen zu konvertieren und umgekehrt.

Alle Beispiele finden sich wie immer inover on GitHub.