투케이2K

550. (kotlin/코틀린) Jackson ObjectMapper 사용해 매퍼 클래스 json 매핑 수행 - writeValueAsString , readValue 본문

Kotlin

550. (kotlin/코틀린) Jackson ObjectMapper 사용해 매퍼 클래스 json 매핑 수행 - writeValueAsString , readValue

투케이2K 2025. 4. 26. 12:58

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java / Kotlin

- 개발 툴 : AndroidStudio

- 기술 구분 : Jackson / ObjectMapper / writeValueAsString / readValue

// --------------------------------------------------------------------------------------





// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

package com.example.kotlinproject

data class M_Jackson_User (


    /**
     * // --------------------------------------------------------------------------------------
     * TODO [클래스 설명]
     * // --------------------------------------------------------------------------------------
     * 1. TODO [설명] : Jackson 라이브러리 사용 Object 매퍼 클래스
     * // --------------------------------------------------------------------------------------
     * 2. TODO [build.gradle 라이브러리 설치 방법]
     *
     * // TODO [jackson 라이브러리 추가]
     * implementation 'com.fasterxml.jackson.core:jackson-core:2.13.4'
     * implementation 'com.fasterxml.jackson.core:jackson-annotations:2.13.4'
     * implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.4'
     * implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.13.4")
     *
     * // --------------------------------------------------------------------------------------
     * 3. TODO [참고 내용]
     *
     * - Jackson 라이브러리 사용해 Object To Class 매핑 시 Get, Set 메소드 필수 선언 필요
     * // --------------------------------------------------------------------------------------
     * 4. TODO [참고 사이트]
     *
     * [라이브러리] [Android] Jackson 자바 Object to Json 변환 라이브러리
     *
     * https://blog.naver.com/kkh0977/223062394936?trackingCode=blog_bloghome_searchlist
     *
     *
     * [Jackson 라이브러리 사용해 Class 클래스 정보 Json 변환]
     *
     * https://blog.naver.com/kkh0977/223841809345?trackingCode=blog_bloghome_searchlist
     *
     * // --------------------------------------------------------------------------------------
     * */





    // ------------------------------------------------------------------------------------------
    // TODO [사용 방법]
    // ------------------------------------------------------------------------------------------
    /*
    try {

        // -------------------------------------------------
        // TODO [Class To Object 변환 수행]
        // -------------------------------------------------
        // TODO [참고] : Class 에서 Get, Set 함수가 없는 경우 에러 발생 주의
        // -------------------------------------------------
        var userId = "TWOK123"
        var userName = "투케이"
        var userAge = 30
        var userAddr = arrayOf("A", "B")

        val m_jackson_user = M_Jackson_User(userId, userName, userAge, userAddr)

        val objectMapper = ObjectMapper()
        val jsonData = objectMapper.writeValueAsString(m_jackson_user) // Class To Object String

        S_Log._W_("[Jackson] :: Class To Object 변환 수행", arrayOf( jsonData ))
        // -------------------------------------------------
        // TODO [Object To Class 변환 수행]
        // -------------------------------------------------
        // TODO [참고] : Class 에서 Default 클래스 생성자 초기화가 없는 경우 에러 발생 주의
        // -------------------------------------------------
        val jsonData = "{\"userAddr\":[\"A\",\"b\"],\"userAge\":30,\"userId\":\"TWOK123\",\"userName\":\"투케이\"}"

        // [ObjectMapper 인스턴스 생성]
        val objectMapper = jacksonObjectMapper().registerKotlinModule()

        // [JSON 문자열을 객체로 변환]
        val m_jackson_user: M_Jackson_User = objectMapper.readValue(jsonData)

        S_Log._W_("[Jackson] :: Object To Class 변환 수행", arrayOf(
            "getUserId :: " + m_jackson_user.userId,
            "getUserName :: " + m_jackson_user.userName,
            "getUserAge :: " + m_jackson_user.userAge.toString(),
            "getUserAddr :: " + Arrays.toString(m_jackson_user.userAddr),
        ))
        // -------------------------------------------------

    }
    catch (Exception e){
        e.printStackTrace();
    }
     */
    // ------------------------------------------------------------------------------------------





    // ------------------------------------------------------------------------------------------
    // TODO [전역 변수 선언] : 코틀린 자동 get , set
    // ------------------------------------------------------------------------------------------
    val userId: String,
    val userName: String,
    val userAge: Int,
    val userAddr: Array<String>

)

// --------------------------------------------------------------------------------------





// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[라이브러리] [Android] Jackson 자바 Object to Json 변환 라이브러리

https://blog.naver.com/kkh0977/223062394936?trackingCode=blog_bloghome_searchlist
     

[Jackson 라이브러리 사용해 Class 클래스 정보 Json 변환]
     
https://blog.naver.com/kkh0977/223841809345?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------
 
반응형
Comments