ちょっとだけ躓いてしまったので、備忘録を残します。
OptionableなPropertyってなんのこと?
下記のようなjsonが送られてくる場合を考えます。
{
"parameter_1": 123,
"parameter_2": 456,
"parameter_3": "sample string",
"optional_parameter": "optional string" // ←入ってないこともある
}
状態によって含まれたり、含まれなかったりする
Property(optional_parameter
)のことを指しています。
「このようなPropetyをKotlinのdata classはどう記述すれば良いか?」
が本記事の内容です。
結論
optionalのパラメータは、デフォルト値を設定する必要があります。
下記に2つ例を示します。
例1_optionalがない場合はnullとする場合
import kotlinx.serialization.Serializable
import kotlinx.serialization.SerialName
@Serializable
data class SampleData(
@SerialName("parameter_1")
val parameter1: Int,
@SerialName("parameter_2")
val parameter2: Int,
@SerialName("parameter_3")
val parameter3: String,
@SerialName("optional_parameter")
val optionalParameter: String? = null
)
例2_optionalがない場合は空文字とする場合
import kotlinx.serialization.Serializable
import kotlinx.serialization.SerialName
@Serializable
data class SampleData(
@SerialName("parameter_1")
val parameter1: Int,
@SerialName("parameter_2")
val parameter2: Int,
@SerialName("parameter_3")
val parameter3: String,
@SerialName("optional_parameter")
val optionalParameter: String = ""
)
参考
最後に
自分は「データが入っていなかったこと」を表現したいので、
例1を採用しています!
その他、別の良い方法があれば教えていただけると助かります!