[kotlin] 맵(Map)을 사용하여 데이터를 직렬화하고 역직렬화하는 방법은 무엇인가요?
데이터 직렬화(Serialization)
직렬화란 데이터를 바이트 스트림으로 변환하는 과정입니다. Kotlin에서 맵을 직렬화하는 방법은 Gson
이나 Jackson
과 같은 라이브러리를 사용하여 JSON 형식으로 변환하는 것이 일반적입니다.
import com.google.gson.Gson
fun main() {
val dataMap = mapOf("key1" to "value1", "key2" to "value2")
val json = Gson().toJson(dataMap)
println(json)
}
위의 코드에서는 Gson
을 사용하여 dataMap
이라는 맵을 JSON 형식의 문자열로 직렬화하고 출력하고 있습니다.
데이터 역직렬화(Deserialization)
역직렬화는 직렬화된 데이터를 다시 객체 형태로 변환하는 과정입니다. 역직렬화 역시 Gson
이나 Jackson
과 같은 라이브러리를 사용하여 JSON 데이터를 맵으로 변환하는 것이 일반적입니다.
import com.google.gson.Gson
fun main() {
val jsonString = "{\"key1\":\"value1\",\"key2\":\"value2\"}"
val mapType = object : TypeToken<Map<String, String>>() {}.type
val dataMap: Map<String, String> = Gson().fromJson(jsonString, mapType)
println(dataMap)
}
위의 코드에서는 Gson
을 사용하여 JSON 형식의 문자열을 맵으로 역직렬화하고 있습니다.
위의 예시에서는 Gson
을 사용하지만, 필요에 따라 다른 직렬화 및 역직렬화 라이브러리를 선택할 수 있습니다.
참고 자료: