Programming/Spring

[spring boot] json 응답하기

JunFe 2021. 6. 8. 23:56
반응형

이 글은 이지업 - 포토그램 만들기를 토대로 작성하였습니다.

 

HttpResponseJsonController.java를 만들어서 @RestController로 만들어 준 후

json으로 응답하는 방법 3가지를 알아보자.

 

1. json형식으로 직접 return 해주기

@GetMapping("/resp/json") 	
public String respJson() { 
	return "{\"username\":\"cos\"}"; 	
}

 

여기서 return 안에 들어가는 문자는 메모장을 켜서 아래와 같이 작성해준다.

{"username":"cos"}

그리고 그대로 복사해서 return 값에 넣어주면 위와 같이 정리되어 들어간다.

 

 

2. java object로 받아서 String형으로 반환

@GetMapping("/resp/json/object") 	
	public String respJsonObject() { 		
	User user = new User(); 		
	user.setUsername("Junfe"); 		 		
	String data = "{\"username\":\""+user.getUsername()+"\"}"; 		
	return data; 	
}

user 객체를 생성해서 그 안에 "Junfe"라는 내용을 담는다.

그리고 data라는 String 형을 선언해서 json 형식으로 작성해준다.

 

실제 개발하면서 절대로 이렇게 사용하진 않는다. data에 들어가는 저 내용을 직접 작성하는 것은 정말 힘든 일일 것이다.....

 

 

3. MessageConverter 가 자동으로 java object를 json 형태로 변환

@GetMapping("/resp/json/javaobject") 	
public User respJsonJavaObject() { 		
	User user = new User(); 		
	user.setUsername("Junfe"); 		 		
	return user;
	// 1. MessageConverter 가 자동으로 JavaObject를 Json으로 변경해서 통신을 통해 응답을 해준다. 					
	// 2. @RestController 일때만 MessageConverter가 작동한다. 	
}

여기서는 객체 자체를 반환한다. 그러면 MessageConverter가 자동으로 JavaObject를 Json으로 변경해준다.

 

이 때, 주의할 점은 controller가 @RestController 여야 한다는 것이다.

 

 

위 3가지 방법의 결과는 모두 아래와 같다.

 

크롬에서 json viewer를 확장하여 사용하기 해놔야 위와 같이 표기된다.

 

 

반응형