У меня есть некоторый входящий JSON, который выглядит следующим образом.
{ "status":200,
"transformation_percent":0.0,
"image_percent":24.51,
"bandwidth_percent":0.0,
"storage_percent":26.23,
"freeTrialPeriod":7889238000,
"freeTrialParams":"{\"cache_period\":604800000,\"cache_allowance\":5000,\"price_in_cents\":0}",
"basicPlanParams":"{\"cache_period\":604800000,\"cache_allowance\":10000,\"stripe_plan_id\":\"plan_blah\",\"price_in_cents\":100,\"currency\":\"eur\"}"
}
Я пытаюсь создать класс ServerParams Kotlin, который будет соответствовать этому входящему JSON, чтобы я мог передать этот класс в gsonBuilder следующим образом:
val GSON = GsonBuilder().setLenient().create()
val server_params = GSON.fromJson(string, ServerParams::class.java)
Я борюсь с вложенными объектами.Я знаю, как написать свой собственный десериализатор, так что я могу сделать это, если придется, но Котлин за короткое время оказался настолько элегантным языком, что я подумал, что должен быть лучший способ сделать это.Я также не хочу писать соответствующие десериализаторы для каждого вызова API!
Я пробовал внутренние классы, которые не работали.Я попытался создать дополнительные классы для вложенных объектов в строке JSON, но это тоже не сработало.