[kotlin] 코틀린에서 Jackson 라이브러리 연동하기

코틀린은 간결하고 신뢰성 있는 언어로써 많은 개발자들에게 사랑받고 있습니다. 그리고 Jackson은 JSON 데이터를 다루기 위한 강력한 라이브러리입니다. 이번 블로그 포스트에서는 코틀린에서 Jackson 라이브러리를 어떻게 연동하는지 살펴보겠습니다.

Jackson 라이브러리 추가하기

코틀린 프로젝트에 Jackson을 사용하기 위해서는 먼저 라이브러리를 추가해야 합니다.

Gradle을 사용하는 경우, build.gradle 파일에 다음과 같이 의존성을 추가해주세요:

dependencies {
    implementation 'com.fasterxml.jackson.core:jackson-core:2.12.1'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.1'
}

Maven을 사용하는 경우, pom.xml 파일에 다음과 같이 의존성을 추가해주세요:

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.12.1</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.12.1</version>
    </dependency>
</dependencies>

의존성을 추가한 후에는 프로젝트를 다시 빌드해야 합니다.

JSON 직렬화 및 역직렬화하기

Jackson을 사용하여 코틀린에서 JSON 데이터를 직렬화하거나 역직렬화할 수 있습니다.

직렬화

객체를 JSON 문자열로 변환하기 위해서는 ObjectMapper 클래스의 writeValueAsString() 메서드를 사용할 수 있습니다. 다음은 간단한 예시입니다:

import com.fasterxml.jackson.databind.ObjectMapper

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

fun main() {
    val person = Person("Alice", 30)

    val objectMapper = ObjectMapper()
    val jsonString = objectMapper.writeValueAsString(person)

    println(jsonString)
}

위의 코드를 실행하면 다음과 같은 JSON 문자열이 출력됩니다:

{"name":"Alice","age":30}

역직렬화

JSON 문자열을 객체로 변환하기 위해서는 ObjectMapper 클래스의 readValue() 메서드를 사용할 수 있습니다. 다음은 간단한 예시입니다:

import com.fasterxml.jackson.databind.ObjectMapper

fun main() {
    val jsonString = "{\"name\":\"Alice\",\"age\":30}"

    val objectMapper = ObjectMapper()
    val person = objectMapper.readValue(jsonString, Person::class.java)

    println(person)
}

위의 코드를 실행하면 Person 객체가 생성되고 출력됩니다.

결론

이번 블로그 포스트에서는 코틀린에서 Jackson 라이브러리를 어떻게 연동하는지 알아보았습니다. Jackson을 사용하면 코틀린에서 간편하게 JSON 데이터를 처리할 수 있습니다.

추가적인 자세한 정보는 Jackson의 공식 문서를 참고하시기 바랍니다: https://github.com/FasterXML/jackson