투케이2K

976. (Android/Java) [간단 소스] Jackson 라이브러리 사용해 JSON String 정보 Class 클래스 변환 - ObjectMapper readValue 본문

Android

976. (Android/Java) [간단 소스] Jackson 라이브러리 사용해 JSON String 정보 Class 클래스 변환 - ObjectMapper readValue

투케이2K 2025. 4. 23. 19:25

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

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

- 언어 : Java / Kotlin

- 개발 툴 : AndroidStudio

- 기술 구분 : Jackson / Object / Json

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






// --------------------------------------------------------------------------------------
[Jackson 라이브러리 의존성 부여 설정 : 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'

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






// --------------------------------------------------------------------------------------
[Java : 클래스 소스 코드]
// --------------------------------------------------------------------------------------

package com.example.javaproject.C_Annotation;

import com.example.javaproject.S_Log;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.Arrays;

public class M_Jackson_User {


    // ------------------------------------------------
    // TODO [전역 변수 선언]
    // ------------------------------------------------
    private String userId; // [사용자 아이디]
    private String userName; // [이름 이름]
    private int userAge; // [사용자 나이]
    private String[] userAddr; // [사용자 주소지]





    // ------------------------------------------------
    // TODO [클래스 생성자 초기화] : [Default]
    // ------------------------------------------------
    public M_Jackson_User() { }





    // ------------------------------------------------
    // TODO [클래스 생성자 초기화] : [Params]
    // ------------------------------------------------
    public M_Jackson_User(String userId, String userName, int userAge, String[] userAddr) {
        this.userId = userId;
        this.userName = userName;
        this.userAge = userAge;
        this.userAddr = userAddr;
    }



    // ------------------------------------------------
    // TODO [Get 정의]
    // ------------------------------------------------
    public String getUserId() {
        return userId;
    }

    public String getUserName() {
        return userName;
    }

    public int getUserAge() {
        return userAge;
    }

    public String[] getUserAddr() {
        return userAddr;
    }



    // ------------------------------------------------
    // TODO [Set 정의]
    // ------------------------------------------------
    public void setUserId(String userId) {
        this.userId = userId;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public void setUserAge(int userAge) {
        this.userAge = userAge;
    }

    public void setUserAddr(String[] userAddr) {
        this.userAddr = userAddr;
    }


} // TODO [클래스 종료]

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






// --------------------------------------------------------------------------------------
[jackson : ObjectMapper.readValue 소스 코드]
// --------------------------------------------------------------------------------------

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

// [ObjectMapper 인스턴스 생성]
ObjectMapper objectMapper = new ObjectMapper();

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

S_Log._W_("[Jackson] :: Object To Class 변환 수행", new String[]{
        "getUserId :: " + m_jackson_user.getUserId(),
        "getUserName :: " + m_jackson_user.getUserName(),
        "getUserAge :: " + String.valueOf(m_jackson_user.getUserAge()),
        "getUserAddr :: " + Arrays.toString(m_jackson_user.getUserAddr()),
});
// -------------------------------------------------

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






// --------------------------------------------------------------------------------------
[결과 출력]
// --------------------------------------------------------------------------------------

W///===========//: ======================================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.C_Activity.A_Test_Activity_Start$39.onClick(A_Test_Activity_Start.java:1560)]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: [Jackson] :: Object To Class 변환 수행]
I/: ----------------------------------------------------
I/: [LOG :: getUserId :: TWOK123]
I/: ----------------------------------------------------
I/: [LOG :: getUserName :: 투케이]
I/: ----------------------------------------------------
I/: [LOG :: getUserAge :: 30]
I/: ----------------------------------------------------
I/: [LOG :: getUserAddr :: [A, b]]
W///===========//: ======================================================================

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





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

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

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


[Jackson] 라이브러리 사용해 json to map 변환 실시

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


[간단 소스] Jackson 라이브러리 사용해 Class 클래스 정보 Json 변환 - ObjectMapper writeValueAsString

https://blog.naver.com/kkh0977/223841809345

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