[spring5 입문] JSON 응답과 요청 처리

이경민·2022년 7월 14일
0

spring

목록 보기
1/20

1. JSON 개요 (JavaScript Object Notation)

간단한 형식을 갖는 문자열로 데이터 교환에 주로 사용.

특징

  • 객체 표현: 중괄호 사용. {이름:값}
  • 문자열: "나 '을 사용해 표현.
  • 숫자: 10진수 표기법 (1.5)이나 지수 표기법(1.07e2) 사용
  • 불리언: true, false 사용

코드

{
	"name":"유관순",
  	"birthday":"1902-12-16",
  	"age":17,
  	"edu": [
      {
        "title":"이화학당보통과",
        "year":1916,
      },
      {
        "title":"이화학당고등과",
        "year":1916,
      },
      {
        "title":"이화학당고등과",
        "year":1919,
      }
    ]
}

2. Jackson 의존 설정

Jackson: 자바 객체와 JSON 형식 문자열 간 변환을 처리하는 라이브러리.
Spring MVC에서 Jackson 라이브러리를 이요해 자바 객체를 JSON으로 변환하려면 클래스 패스에 Jackson 라이브러리를 추가하면 된다. 이를 위해 pom.xml 파일에 Jackson 관련 의존을 추가한다.

참고문헌

https://github.com/FasterXML/jackson-docs

Jackson의 자바 객체와 JSON 간의 변환

public class Person {
	private String name;
    private int age;
}
{
	"name":"이름",
  	"age":10
}

3. @RestController로 JSON 형식 응답

@RestController
public class RestMemberController {
	private MemberDao memberDao;
    private MemberRegisterService registerService;
    
    @GetMapping("api/members")
    public List<Member> members() {
    	return memberDao.selectAll();
    }
    
    @GetMapping("api/members/{id}")
    public Member member(@PathVariable Long id, HttpServletResponse response) throws IOException {
    	Member member=memberDao.selectById(id);
        if (member==null) {
        	response.sendError(HttpServletResponse.SC_NOT_FOUND);
            return null;
        }
        return member;
    }
    
    public void setMemberDao(MemberDao memberDao) {
    	this.memberDao=memberDao;
    }
    
    public void setRegisterService(MemberRegisterService registerService) {
    	this.registerService=registerService;
    }
}
@Configuration
public class ControllerConfig {
	... 생략
    
    @Bean
    public RestMemberController restApi() {
    	RestMemberController cont=new RestMemberController();
        cont.setMemberDao(memberDao);
        cont.setRegisterService(memberRegSvc);
        return cont;
    }
}

0개의 댓글