Notice
Recent Posts
Recent Comments
Link
투케이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
// --------------------------------------------------------------------------------------
반응형
'Android' 카테고리의 다른 글
Comments