자바에서 Jackson을 사용한 JSON 직렬화 및 역직렬화

Gonee·2024년 8월 8일

삽질공간

목록 보기
5/6

자바에서 Jackson을 사용한 JSON 직렬화 및 역직렬화

Jackson 이란?

Jackson은 자바의 데이터 처리를 위한 라이브러리로 주로 객체를 JSON으로 직렬화하거나 JSON을 자바 객체로 역직렬화 하기위해 사용한다.

직렬화와 역직렬화

데이터 직렬화는 객체를 외부에서 사용하기 위해 저장 매체에 저장할 수 있는 형식이나 네트워크 등에 전송할 수 있는 형식으로 변환하는 것을 말하며
데이터 역직렬화는 저장 매체에 저장되어있는 데이터 또는 네트워크를 통해 전달된 데이터를 다시 객체로 변환하는 것을 뜻한다.

자바에서 REST API를 작성하다보면 직렬화와 역직렬화를 주로 JSON 형식의 문자열로 진행하게 된다.

Jackson의 동작

Json 속성 감지

  • 모든 "public" 필드
  • 모든 "public" getter getXxx()
  • 모든 setter setXxx(value)

Object Mapper를 사용한 JSON 직렬화

  • ObjectMapper는 리플랙션을 활용하여 자바 객체를 JSON 문자열로 직렬화

ObjectMapper를 사용한 JSON 역직렬화

  1. 기본 생성자로 객체 생성
  2. Json 속성을 감지하여 값 바인딩
//EX1
class Person {

    //private 필드는 JSON 필드에서 제외
	private String name;
	public int age;
}
//직렬화 결과
// {"age":10} 

//EX2
class Person {

	private String name;
	public int age;

    public Person(){}

    //public getter로 JSON 필드에 포함
	public String getName(){
		return name;
	}
}
//직렬화 결과
//{"name":"test","age":10}
profile
서버 개발자

0개의 댓글