Ответ
Для сериализации/десериализации в Android чаще всего используют:
- Gson (Google) - простой, но медленный:
val gson = Gson()
val json = gson.toJson(myObject) // сериализация
val obj = gson.fromJson(json, MyClass::class.java) // десериализация
- Moshi (Square) - современная альтернатива Gson с поддержкой Kotlin:
val moshi = Moshi.Builder().build()
val adapter = moshi.adapter(MyClass::class.java)
val json = adapter.toJson(myObject)
val obj = adapter.fromJson(json)
- Kotlinx.serialization - нативный для Kotlin, требует аннотаций:
@Serializable
data class User(val name: String)
val json = Json.encodeToString(User("Alex"))
val obj = Json.decodeFromString<User>(json)
- Parcelable - для межпроцессного взаимодействия (Android-specific)
Для JSON предпочтительнее Moshi или kotlinx.serialization из-за производительности и null-safety. Для сложных случаев можно использовать Protocol Buffers или FlatBuffers.