Spring | JSON 문자열 응답하기

새니·2023년 6월 16일
0

spring

목록 보기
3/13
post-thumbnail

Spring 프레임 워크는 JSON형식의 응답을 생성하고 전송하기 위한 기능이 있다.

JSON문자열 응답하는 방법
1. JSON라이브러리의 의존성 추가
먼저 pom.xml 에 jackson-databind dependency 를 추가한다.

  1. @ResponseBody 어노테이션 사용
    컨트롤러 메소드에 @ResponseBody 어노테이션을 붙여준다.
    이 어노테이션은 해당 메소드의 반환 값을 JSON으로 변환하여 응답으로 전송한다.
  2. 객체 반환
    컨트롤러에서 JSON으로 변환할 객체를 반환해야 한다.
    반환할 수 있는 객체는 Dto, List, Map등 다양한 형태일 수 있다. Spirng은 자동으로 객체들을 JSON으로 변환하여 응답한다.

😶 예시를 통해 더 알아보기 !

@Controller
public class TestController {

	@ResponseBody
	//viewpage의 경로를 찾는게  아닌 문자열을 응답하기 위해서 
	@RequestMapping("/test/json1")
	public String json1() {
		
		return "{\"num\":1, \"name\":\"kim\", \"addr\":\"seoul\"}";
		
		
	}
 

💻 출력

dto 와 map 출력


	@ResponseBody
	@RequestMapping("/test/json2")
	public MemberDto json2() {
		//db에서 읽어온 회원정보라고 가정하자
		MemberDto dto = new MemberDto();
		dto.setNum(2);
		dto.setName("lee");
		dto.setAddr("busan");
		
		return dto;
		
		//dto or map => { }
	}
	

💻 출력

	@ResponseBody
	@RequestMapping("/test/json3")
	public Map<String, Object> json3(){
		Map<String, Object> map = new HashMap<>();
		map.put("num", 3);
		map.put("name", "원숭이");
		map.put("addr", "동물원");
		return map;
		
		//dto or map => { }
	}

💻 출력

List<string> 출력

	@ResponseBody
	@RequestMapping("/test/json4")
	public List<String> json4(){
		List<String> names = new ArrayList<>();
		names.add("김구라");
		names.add("해골");
		names.add("원숭이");
		
		return names;
		//List => [ ]
		//List<string> => ["xxx","xxx"....]
		
	}

💻 출력

List<Dto> or List<map>

	@ResponseBody
	@RequestMapping("/test/json5")
	public List<MemberDto> json5(){
		List<MemberDto> list = new ArrayList<>();
		list.add(new MemberDto(1,"김구라","노량진"));
		list.add(new MemberDto(2,"해골","행신동"));
		list.add(new MemberDto(3,"원숭이","동물원"));
		return list;
		
		//List<Dto> or List<map> => [{},{},.....]
		
	}

💻 출력

	@ResponseBody
	@RequestMapping("/test/json6")
	public List<Map< String, Object>> json6(){
		List<Map<String, Object>> list = new ArrayList<>();
		Map<String, Object> map1 = new HashMap<>();
		map1.put("num",1);
		map1.put("name", "김구라");
		map1.put("addr", "노량진");
		
		Map<String, Object> map2 = new HashMap<>();
		map2.put("num",2);
		map2.put("name", "해골");
		map2.put("addr", "행신동");
		
		Map<String, Object> map3 = new HashMap<>();
		map3.put("num",3);
		map3.put("name", "원숭이");
		map3.put("addr", "동물원");
		
		list.add(map1);
		list.add(map2);
		list.add(map3);
		
		return list;
		
		//List<Dto> or List<map> => [{},{},.....]
		
	}

💻 출력

profile
새니의 뒤죽박죽 개발 일기📝

0개의 댓글

관련 채용 정보