Gsonとdata classを使って簡単にシンプルにJSON設定ファイルを扱うことができました。
これだけの記述で実現でき、見やすさも十分なのはKotlinの仕様のおかげですね。
app_setting.json
{
"redisHost": "192.168.1.1",
"redisPort": 6379,
"redisDb": 5
}
Config.kt
import com.google.gson.Gson
import java.io.File
data class Config
(
val redisHost:String,
val redisPort:Int,
val redisDb:Int
) {
companion object {
var config:Config = _parseConfig("app_setting.json")
fun get():Config {
return config
}
fun _parseConfig(filePath:String):Config {
val source = File(filePath).readText("UTF-8")
return Gson().fromJson(source, Config::class.java)!!
}
}
}