Kotlin
kotlinx.serialization JSON
Kotlin 공식 직렬화 라이브러리로 data class를 JSON으로 변환합니다.
<span class="kw">import</span> <span class="pk">kotlinx.serialization.*</span>
<span class="kw">import</span> <span class="pk">kotlinx.serialization.json.*</span>
<span class="an">@Serializable</span>
<span class="kw">data class</span> <span class="ty">User</span>(
<span class="kw">val</span> id: <span class="ty">Int</span>,
<span class="kw">val</span> name: <span class="ty">String</span>,
<span class="an">@SerialName</span>(<span class="str">"email_address"</span>)
<span class="kw">val</span> email: <span class="ty">String</span>,
<span class="kw">val</span> active: <span class="ty">Boolean</span> = <span class="kw">true</span>
)
<span class="kw">fun</span> <span class="fn">main</span>() {
<span class="kw">val</span> json = Json {
prettyPrint = <span class="kw">true</span>
ignoreUnknownKeys = <span class="kw">true</span>
encodeDefaults = <span class="kw">false</span>
}
<span class="kw">val</span> user = User(<span class="num">1</span>, <span class="str">"Alice"</span>, <span class="str">"alice@test.com"</span>)
<span class="cm">// 직렬화</span>
<span class="kw">val</span> jsonStr = json.<span class="fn">encodeToString</span>(user)
<span class="fn">println</span>(jsonStr)
<span class="cm">// 역직렬화</span>
<span class="kw">val</span> decoded = json.<span class="fn">decodeFromString</span><<span class="ty">User</span>>(jsonStr)
<span class="fn">println</span>(decoded.name)
<span class="cm">// 리스트 직렬화</span>
<span class="kw">val</span> users = listOf(user, user.copy(id = <span class="num">2</span>, name = <span class="str">"Bob"</span>))
<span class="fn">println</span>(json.<span class="fn">encodeToString</span>(users))
}