Leggere file TOML in Kotlin con toml4j
In questo articolo vediamo come leggere un file TOML in Kotlin usando toml4j.
E' possibile anche usare un mapper con classi apposite, ma noi faremo un esempio basico più semplice.
Se usate Maven:
<dependency>
<groupId>com.moandjiezana.toml</groupId>
<artifactId>toml4j</artifactId>
<version>0.7.2</version>
</dependency>
Questo il file TOML preso da una configurazione di produzione:
title = "Test TOML"
version = "1.0.0"
[database]
host = "localhost"
port = 5432
username = "root"
password = "password"
databases = ["db_test"]
pool_size = 10
ssl_enabled = true
[server]
host = "0.0.0.0"
port = 8080
debug = false
allowed_hosts = ["*"]
[logging]
level = "INFO"
format = "%(asctime)s - %(levelname)s - %(message)s"
handlers = ["console", "file"]
[cache]
enabled = true
ttl = 3600
max_size = 1000
[features]
enable_api = true
rate_limit = 100
Qui sotto il codice:
package org.example
import com.moandjiezana.toml.Toml
import java.io.File
fun main() {
val toml = Toml().read(File("C:\TEST\test.toml"))
val title = toml.getString("title")
val version = toml.getString("version")
println("Title: $title")
println("Version: $version")
val dbHost = toml.getString("database.host")
val dbPort = toml.getLong("database.port")
val databases: MutableList<String?>? = toml.getList("database.databases")
val sslEnabled = toml.getBoolean("database.ssl_enabled")
println("nDatabase:")
println("Host: $dbHost")
println("Port: $dbPort")
println("Databases: $databases")
println("SSL: $sslEnabled")
val serverHost = toml.getString("server.host")
val serverPort = toml.getLong("server.port")
val debug = toml.getBoolean("server.debug")
val allowedHosts: MutableList<String?>? = toml.getList("server.allowed_hosts")
println("nAllowed hosts:")
for (str in allowedHosts!!) {
println(str)
}
println("nServer:");
println("Host: $serverHost");
println("Port: $serverPort");
println("Debug: $debug");
val cache = toml.getTable("cache")
val cacheEnabled = cache.getBoolean("enabled")
val ttl = cache.getLong("ttl")
val maxSize = cache.getLong("max_size")
println("nCache:")
println("Enabled: $cacheEnabled")
println("TTL: $ttl")
println("Max Size: $maxSize")
}
Enjoy!
kotlin maven toml toml4j
Commentami!