Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

HTTP 응답 데이터 - API JSON 본문

인프런/[인프런] 스프링 MVC 1

HTTP 응답 데이터 - API JSON

Seung__ 2021. 9. 8. 23:31

1. MessageBody에 JSON을 담아서 보내보자!


  • objectMapper.writeValueAsString()을 통해 Object -> JSON 변환
  • response.getWriter().write() 를 통해 body에 담음.
@WebServlet(name = "ResponseJsonServlet", urlPatterns = "/response-json")
public class ResponseJsonServlet extends HttpServlet {

    ObjectMapper objectMapper = new ObjectMapper();

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //Content-Type: application/json
        response.setContentType("application/json");
        response.setCharacterEncoding("utf-8");

        HelloData helloData = new HelloData();
        helloData.setUsername("kim");
        helloData.setAge(20);

        //Object -> json
        String result = objectMapper.writeValueAsString(helloData);
        
        response.getWriter().write(result);

    }
}

 

2. 참고


  • application/json 은 스펙상 utf-8 형식이 지정되어있음.
  •  그래서  charset=utf-8과 같은 추가 파라미터를 지원하지 않음.. 
  • 따라서 application/json를 사용해야함. application/json;charset=utf-8 이라고 전달하는 것은 의미 없음.
  • response.getWriter()를 사용하면 추가 파라미터를 자동으로 추가해버린다.
  • 이때는response.getOutputStream()으로 출력하면 그런 문제가 없다.

 

3. GitHUb : 210908 HttpServletResponse, json


 

GitHub - bsh6463/MVC1

Contribute to bsh6463/MVC1 development by creating an account on GitHub.

github.com

 

Comments