kotlinでシリアライズするクラスにデフォルト値をつけると、頭のいいコンパイラが余計なことをして設定値を書き出さないことがある。 次のコードを実行すると、a,bは意図したとおりになるが、それ以降は値が書き出されない。 @Serializable data class HasDefault( @SerialName("points") val points:Int=10, @SerialName("cycle") val cycle:Int=10 ) @Serializable data class Normal( @SerialName("points") val points:Int, @SerialName("cycle") val cycle:Int ) class Test { @Test fun test() { val a=Normal(1,2) println(Json.e