Parsing JSON in Kotlin con Moshi
Moshi è una libreria per Java e Kotlin per JSON, ottimizzata per essere usata anche in ambito mobile.
In questo articolo vediamo un esempio in Kotlin.
Se usate gradle:
dependencies {
implementation("com.squareup.moshi:moshi:1.15.1")
implementation("com.squareup.moshi:moshi-kotlin:1.15.1")
}
Poi creiamo una data class:
package org.example
data class Libro(
val titolo: String,
val autore: String,
val prezzo: Double
)
Qui sotto un pò di codice:
package org.example
import com.squareup.moshi.Moshi
import com.squareup.moshi.Types
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
import java.io.IOException
fun main() {
val json = """
[
{"titolo":"IT","autore":"Stephen King","prezzo":30},
{"titolo":"Sahara","autore":"Clive Cussler","prezzo":25.5}
]
""".trimIndent()
val moshi = Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()
val type = Types.newParameterizedType(List::class.java, Libro::class.java)
val jsonAdapter = moshi.adapter<List<Libro>>(type)
try {
val libri = jsonAdapter.fromJson(json)
libri?.forEach { libro ->
println("${libro.titolo} - ${libro.autore} - ${libro.prezzo}€")
}
} catch (e: IOException) {
println("Errore: ${e.message}")
}
}
Enjoy!
kotlin gradle moshi json
Commentami!