Retrofit: значения по умолчанию несуществующих полей
Использую Retrofit для получения данных.
Создал свой класс, в который эти данные записываются.
Кроме тех полей, что есть уже в JSON'е мне надо еще одно мое кастомное поле типа boolean, которое по умолчанию должно быть true.
Но ни оно, ни любое другое поле со значение по умолчанию не ставится.
Если boolean то false. Если int, то 0. Если string то null
data class MyClass(
// основные поля, которые работают хорошо
var isWork: Boolean = true,
var test: String = "sdfgsdfg",
var xx: Int = 45
)
////////////
isWork=false, test=null, xx=0)
Пробовал переписать это в init - не помогло.
data class MyClass(
var isWork: Boolean,
var test: String,
var xx: Int
) {
init {
isWork = true
test = "sdfgsdfg"
xx = 45
}
}
Я понимаю, что Retrofit не находит этих полей в заданном Json'е и ставит их по умолчанию сам.
Как мне задать нужные значения для этих полей?
interface ApiGetCashellable {
@GET("https://belarusbank.by/api/kursExchange")
fun giveMeYourMoney(): Call<MutableList<BelarusBankClass>>
companion object {
@JvmStatic
fun create(): ApiGetCashellable {
val okHttpClient = OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
.readTimeout(120, TimeUnit.SECONDS)
.build()
val retrofit: Retrofit = Retrofit.Builder()
.baseUrl("https://belarusbank.by/")
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.build()
return retrofit.create(ApiGetCashellable::class.java)
}
}
}