Parsing JSON in Kotlin con Moshi

Mattepuffo's logo
Parsing JSON in Kotlin con Moshi

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!


Condividi

Commentami!