JSON이란 무엇일까??

2018. 10. 14. 04:57용어 관련

반응형

지난 번 포스팅에서 Restful API관하여 자세히 알아보다가 공개된 OPEN API 대부분 JSON을 활용하여 데이터를 주고 받는 다는 것을 알았다. 위 포스팅에서는 JSON의 개념과 어떠한 형식에 대해 좀 더 자세히 알아보고 JSON에 관련된 Library가 무엇이 있는지 알아본다.

 

 

1. JSON(JavaScript Object Notation)이란?

  • JSON은 경량(Lightweight)의 DATA-교환 형식
  • Javascript에서 객체를 만들 때 사용하는 표현식을 의미한다.
  • JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용한다.
  • 특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링 할 수 있는 라이브러리를 제공한다.

2. JSON(JavaScript Object Notation) 형식

2.1 name-value 형식의 쌍(pair)

  • 여러 가지 언들에서 object, hashtable, struct로 실현되었다.
  • { String key : String Value}
{   "firstName": "Kwon",   "lastName": "YoungJae",   "email": "kyoje11@gmail.com" } 

2.2 값들의 순서화된 리스트 형식

  • 여러 가지 언어들에서 배열(Array), 리스트(List)로 실현되었다.
  • [ value1, value2, ….. ]
{   "firstName": "Kwon",   "lastName": "YoungJae",   "email": "kyoje11@gmail.com",   "hobby": ["puzzles","swimming"] } 

3. JSON Library - Jackson(Java) 적용하기

  • JSON은 쉽게 객체(Object)로 바꿔주거나 객체(Object)를 JSON으로 바꿔주는 Library가 대부분 언어에서 존재한다.
  • Jackson : https://github.com/FasterXML/jackson
  • Spring Framework 를 사용하여 예시를 들어보이겠다.

3.1 Maven의 pom.xml의 추가하기

  • Jackson이라고 치면 가장 위에 보이는 Jackson Databind를 선택한다.

NO Image

<dependency>     <groupId>com.fasterxml.jackson.core</groupId>     <artifactId>jackson-databind</artifactId>     <version>2.5.1</version> </dependency> 

3.2 @ResponseBody를 사용하여 JSON형태로 응답하기

  • Controller를 통해 View로 넘어가지 않고 데이터(JSON OR XML)를 넘겨 줄 수 있다.
  • Spring 3.1에서부터 을 사용하면 HttpMessageConverter가 자동으로 등록된다.
  • @ResponseBody : Return 값은 View를 통해서 출력되는 것이 아니라 HTTP Response Body에 직접쓰여진다.
  • annotation-driven 활성화 하기
<mvc:annotation-driven></mvc:annotation-driven> 
  • RestfulController의 getUserList 코드
@RequestMapping(value = "/users", method = RequestMethod.GET) @ResponseBody public Map getUserList(){   List<Offer> userList = offersService.getCurrent(); // DB에 등록된 User List를 받아온다.   Map result = new HashMap();    result.put("result",Boolean.TRUE);   result.put("data",userList);    return result; } 

3.3 서버를 작동시켜 확인해보기.

  • RequestMapping된 주소인 http://localhost:8080/users 확인해보자.
  • 결과 모습 : 잘 도착했지만 보기가 불편하다.

NO Image

3.4 PostMan을 통해 예쁘게 보자.

NO Image

NO Image

Reference

출처 : https://nesoy.github.io/articles/2017-02/JSON

 

반응형

'용어 관련' 카테고리의 다른 글

서블릿과 서블릿 컨테이너란 무엇인가?  (0) 2018.10.14
RESTful이란?  (0) 2018.10.14