JSON 형식 사용하기

✒️ 2025-05-28 11:46 내용 수정


JSON 라이브러리

라이브러리 추가 및 사용

  1. 프로젝트 사전 설정 : Annotation 기반 설정 파일#프로젝트 설정에 작성한 내용대로 프로젝트의 사전 설정을 먼저 진행한다.
  2. https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind 에 접속해서 원하는 버전을 선택한 후 Maven 항목을 복사해서 프로젝트의 pom.xml의 dependancies에 추가한다.
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>

json 1.png
json 2.png

  1. src/main/resources 폴더에 dto 패키지를 만들고, TestDTO를 만든다. 테스트를 위해 클래스에는 이름, 나이, 성별 필드를 만든다.
package dto;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class TestDTO {
	private String name;
	private int age;
	private String gender;
}
  1. src/main/java에 JsonTestController 클래스를 만든다. 이 클래스에서 TestDTO 클래스 객체를 생성하고 필드에 저장할 정보를 넣은 후 객체를 반환한다.
package controller;

import java.util.ArrayList;
import java.util.HashMap;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import dto.TestDTO;

@Controller
public class JsonTestController {

		@RequestMapping("/dto_to_json")
		@ResponseBody
		public TestDTO dtoJson() {
			TestDTO test = new TestDTO();
			test.setName("홍길동");
			test.setAge(30);
			test.setGender("남성");
			return test;
		}
		
		@RequestMapping("/map_to_json")
		@ResponseBody
		public HashMap<String, Integer> mapJson() {
			HashMap<String, Integer> map = new HashMap<String, Integer>();
			map.put("고길동", 40);
			map.put("이길동", 20);
			return map;
		}
		
		@RequestMapping("/list_to_json")
		@ResponseBody
		public ArrayList<String> listJson() {
			ArrayList<String> list = new ArrayList<String>();
			list.add("사과");
			list.add("딸기");
			list.add("수박");
			return list;
		}
}
  1. ServletContext에 JsonTestController 객체 Bean을 생성한다.
package mvc;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import controller.JsonTestController;

@Configuration
@EnableWebMvc
//@ComponentScan() 자동 스캔 대신 직접 추가했다.
public class ServletContext implements WebMvcConfigurer{
	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
	}
	
	@Bean
	public JsonTestController jsonTestController() {
		return new JsonTestController();
	}
}
  1. 클래스들 생성이 완료되면 프로젝트를 실행하고, JsonTestController에서 mapping 했던 url을 입력해 결과를 확인한다.