[JAVA/Spring] Jackson 라이브러리란? (JSON 데이터 처리)

yurinnn·2024년 2월 4일
0

Java/Spring

목록 보기
11/13
  • 스프링 프레임워크(Spring Framework)에서는 JSON 데이터를 처리하기 위해 Jackson 라이브러리를 사용한다.
  • Jackson 은 자바 객체와 JSON 데이터 간의 변환을 쉽게 처리할 수 있는 강력한 라이브러리로, JSON 직렬화(serialization) 및 역직렬화(deserialization)를 지원한다.
  • 즉, Java Object를 JSON으로 변환하거나 JSON을 Java Object로 변환하는 데 사용할 수 있는 Java 라이브러리이다.

Jackson의 특징

  1. Stream API:
    스트림 형식으로 데이터를 분석하고 생성하기 때문에 성능이 좋다.
  2. Tree Model:
    XML의 DOM처럼 Node 형태로 데이터를 다룰 수 있기 때문에 유연성이 좋다.
  3. Data Binding:
    POJO기반의 자바 객체들을 JSON으로 변환시킬 수 있다.

Java 객체를 Json으로 변환하는 방법

Maven 빌드 도구에서 다음과 같이 의존성을 설정한다.

	<!-- jackson 라이브러리 -->
	<dependency>
       	 <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
    </dependency>

JSON 데이터 구조 예시

{    
	"name": "Mommoo",    
	"age": 28,    
    "isDeveloper": true,    
    "equipment": ["NoteBook", "Mouse", "SmartPhone"],    
    "etc": {        
    	"favoriteFood": 'Coffee'    
    }
}

JAVA object 를 JSON 문자열로 변환하기
ObjectMapper 사용

public class ObjectToJson {    
	public static void main(String[] args) throws JsonProcessingException {         
    	// Student 객체 생성        
        Student student = new Student(1, "Anna");         
        // jackson objectmapper 객체 생성        
        ObjectMapper objectMapper = new ObjectMapper();         
        // Student 객체 -> Json 문자열        
        String studentJson = objectMapper.writeValueAsString(student);         
        // Json 문자열 출력        
        System.out.println(studentJson); // {"id":1,"name":"Anna"}    
    }
}

JAVA object 를 JSON 파일로 변환하기

public class ObjectToFile {    
	public static void main(String[] args) throws JsonGenerationException, 
    	JsonMappingException, IOException {        
        // Student 객체 생성        
        Student student = new Student(1, "Anna");         
        // jackson objectmapper 객체 생성        
        ObjectMapper objectMapper = new ObjectMapper();         
        // Student 객체 -> Json 파일        
        objectMapper.writeValue(new File("C:\\json\\student.json"), student);     
    }
}

Map을 JSON 문자열로 변환하기

public class MapToJson {    
	public static void main(String[] args) throws JsonProcessingException {         
    	// Map 생성        
        Map<String, Object> map = new HashMap<>();        
        map.put("id", 1);        
        map.put("name", "Anna");         
        // jackson objectmapper 객체 생성        
        ObjectMapper objectMapper = new ObjectMapper();         
        // Map -> Json 문자열        
        String studentJson = objectMapper.writeValueAsString(map);         
        // Json 문자열 출력        
        System.out.println(studentJson); // {"name":"Anna","id":1}    
	}
}

List를 JSON 문자열로 변환하기

public class ListToJson {    
	public static void main(String[] args) throws JsonProcessingException {         
    	// List 생성        
    	List<Student> list = new ArrayList<>();        
    	list.add(new Student(1, "Anna"));        
    	list.add(new Student(2, "Brian"));         
    	// jackson objectmapper 객체 생성        
    	ObjectMapper objectMapper = new ObjectMapper();         
    	// List -> Json 문자열        
    	String studentJson = objectMapper.writeValueAsString(list);         
    	// Json 문자열 출력        
    	System.out.println(studentJson); 
        // [{"id":1,"name":"Anna"},{"id":2,"name":"Brian"}]    
	}
}

배열을 JSON 문자열로 변환하기

public class ArrayToJson {    
	public static void main(String[] args) throws JsonProcessingException {         
    	// 배열 생성        
        Student[] arr = new Student[2];        
        arr[0] = new Student(1, "Anna");        
        arr[1] = new Student(2, "Brian");         
        // jackson objectmapper 객체 생성        
        ObjectMapper objectMapper = new ObjectMapper();         
        // 배열 -> Json 문자열        
        String studentJson = objectMapper.writeValueAsString(arr);         
        // Json 문자열 출력        
        System.out.println(studentJson); // [{"id":1,"name":"Anna"},{"id":2,"name":"Brian"}]    
	}
}
profile
슬기로운 개발 생활

0개의 댓글