Есть ли лучший способ для обработки сериализации kotlinx?

Я использую kotlinx.serialization на родном проекте Kotlin я определил Super class для моих моделей и всех моделей происходит от него. Я определил function чтобы позвонил toJSON() для сериализации переменных и полей внутри модели, которые есть во всех моделях классов.

@Serializable
open class Model {
   fun toJSON(): String = JSON.stringify(this);
}

И я создал подкласс

class Me : Model() {
  var name:String = "Jack";
}

но когда я призываю JSON.stringify(this), IDE получить предупреждение для меня:

Это объявление является экспериментальным, и его использование должно быть помечено '@kotlinx.serialization.ImplicitReflectionSerializer' или '@UseExperimental(kotlinx.serialization.ImplicitReflectionSerializer::class)'

Я обратил внимание, и я использовал @ImplicitReflectionSerializer аннотация пока не сработала. Где моя проблема?

1 ответ

Это обсуждается здесь. Это конкретная перегрузка, которую вы используете, которая все еще является экспериментальной. Таким образом, вы можете либо использовать другую перегрузку (которая принимает сериализатор), либо использовать одну из аннотаций, упомянутых в сообщении об ошибке. Если вы посмотрите на ответ на вопрос, который я связал (и комментарии после него), вы увидите, что он говорит об использовании @UseExperimental и где это должно быть использовано.

Другие вопросы по тегам