Leggere file YAML in Kotlin con SnakeYAML

Mattepuffo's logo
Leggere file YAML in Kotlin con SnakeYAML

Leggere file YAML in Kotlin con SnakeYAML

SnakeYAML è una libreria per Java, e quindi compatibile anche con Kotlin, per leggere e manipolare file YAML.

Oggi vediamo come leggere un file usando una classe custom, usando Kotlin.

Cominciamo con l'installare la libreria; se usate Maven:

        <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <version>1.30</version>
        </dependency>

Poi creiamo un file YAML dentro alla cartella resources (test.yaml):

nome: "Mirco"
cognome: "Mirchi"
eta: 20

Questa la nostra classe Persona:

class Persona {
    var nome: String = ""
    var cognome: String = ""
    var eta: Int = 0
}

Infine leggiamo i valori:

import org.yaml.snakeyaml.Yaml
import org.yaml.snakeyaml.constructor.Constructor
import java.io.InputStream

fun main(args: Array<String>) {
    val yaml = Yaml(Constructor(Persona::class.java))
    val inputStream: InputStream? = object {}.javaClass.classLoader.getResourceAsStream("test.yaml")

    val p: Persona = yaml.load<Persona>(inputStream)
    println(p.nome)
    println(p.cognome)
    println(p.eta)
}

Non è obbligatorio usare una classe custom; ma secondo è preferibile sia per lettura del codice, sia per apportare eventuali modifiche.

Enjoy!


Condividi

Commentami!