Hanbit the Developer
Kotlin Documentation | Serialization 본문
Category: Official libraries
문서 링크: https://kotlinlang.org/docs/serialization.html
직렬화는 데이터를 네트워크로 보내거나 데이터베이스에 저장할 수 있는 형태로 변환하는 것이고, 역직렬화는 그러한 데이터를 런타임 오브젝트로 변환하는 것이다.
Libraries
kotlinx.serialization은 JVM, JavaScript, Native 플랫폼과 JSON, CBOR, protocol buffers 등의 다양한 직렬 포멧을 지원하는 라이브러리를 제공한다.
Example: JSON serialization
@Serializable 주석으로 클래스를 serializable하게 한다.
@Serializable
data class Data(val a: Int, val b: String)
이제 Json.encodeToString()을 통해 직렬화할 수 있다.
fun main() {
val json = Json.encodeToString(Data(42, "str"))
}
위 결과로 {"a": 42, "b": "str"}를 얻게 된다.
또한 리스트 같은 컬렉션을 직렬화할 수 있다.
eval dataList = listOf(Data(42, "str"), Data(12, "test"))
val jsonList = Json.encodeToString(dataList)
역직렬화하기 위해서는 decodeFromString()을 호출한다:
@Serializable
data class Data(val a: Int, val b: String)
fun main() {
val obj = Json.decodeFromString<Data>("""{"a":42, "b": "str"}""")
}
'Kotlin' 카테고리의 다른 글
Effective Kotlin | 2장. 가독성 (0) | 2023.06.13 |
---|---|
Effective Kotlin | 1장. 안정성 (0) | 2023.06.13 |
Kotlin Documentation | Shared mutable state and concurrency (0) | 2023.05.26 |
Kotlin Documentation | Coroutine exceptions handlings (0) | 2023.05.26 |
Kotlin Documentation | Channels (0) | 2023.05.26 |