[kotlin] 코틀린에서의 JSON 타입 변환 함수

코틀린은 강력한 타입 변환 기능을 제공하여 JSON 데이터를 쉽게 처리할 수 있습니다. 이 글에서는 코틀린에서 JSON 타입 변환을 위해 사용되는 기본 함수들을 알아보겠습니다.

1. Gson 사용하기

Gson은 Google에서 개발한 JSON 라이브러리로, 코틀린에서 자주 사용됩니다. Gson을 사용하려면 먼저 Gson의 종속성을 추가해야 합니다. build.gradle 파일에 다음 코드를 추가합니다:

implementation 'com.google.code.gson:gson:2.8.7'

Gson을 사용하여 JSON 문자열을 객체로 변환하려면 다음과 같은 코드를 작성할 수 있습니다:

import com.google.gson.Gson

data class Person(val name: String, val age: Int)

fun main() {
    val json = """
        {
            "name": "John",
            "age": 30
        }
    """.trimIndent()

    val gson = Gson()
    val person = gson.fromJson(json, Person::class.java)

    println("Name: ${person.name}")
    println("Age: ${person.age}")
}

위의 코드에서는 Gson 객체를 생성한 후, fromJson() 함수를 사용하여 JSON 문자열을 Person 객체로 변환합니다.

2. Kotlin Serialization 사용하기

Kotlin Serialization은 Kotlin 공식 라이브러리로, 코틀린에서 JSON 타입 변환을 쉽게 처리할 수 있도록 지원합니다. Kotlin Serialization을 사용하려면 먼저 Kotlin Serialization의 종속성을 추가해야 합니다. build.gradle 파일에 다음 코드를 추가합니다:

implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.0'

Kotlin Serialization을 사용하여 JSON 문자열을 객체로 변환하려면 다음과 같은 코드를 작성할 수 있습니다:

import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json

@Serializable
data class Person(val name: String, val age: Int)

fun main() {
    val json = """
        {
            "name": "John",
            "age": 30
        }
    """.trimIndent()

    val person = Json.decodeFromString<Person>(json)

    println("Name: ${person.name}")
    println("Age: ${person.age}")
}

위의 코드에서는 @Serializable 어노테이션을 사용하여 Person 클래스를 직렬화 가능하도록 표시합니다. 그리고 Kotlin Serialization의 decodeFromString() 함수를 사용하여 JSON 문자열을 Person 객체로 변환합니다.

3. 참고 자료

위의 예제 코드는 Gson과 Kotlin Serialization을 사용한 JSON 타입 변환의 기본적인 사용법을 소개한 것입니다. 더 자세한 내용은 해당 라이브러리의 문서를 참고하시면 좋습니다.