본문 바로가기
  • 실행력이 모든걸 결정한다
Frontend/JavaScript

JSON의 정의와 그 사용법

by 김코더 김주역 2020. 9. 19.
반응형

1. JSON이란?

JSON은 웹과 컴퓨터 프로그램에서 용량이 적은 데이터를 교환하기 위해 데이터 객체를 속성-값의 쌍 형태로 표현하는 형식으로, 이 형식은 사람과 기계에게 모두 쓰기 용이하다.

JSON은 자바스크립트를 토대로 개발되었지만 언어로부터 독립적이며, C, C++, Java, Python, PHP 등 에서 JSON 형식으로 데이터를 주고 받는다. 단, 표기법은 자바스크립트 객체 표기법을 따른다.

특히 서버와 통신을 해야하는 작업에 매우 유용하다.

 

2. JSON의 구조

{"데이터 이름" : 값} 쌍으로 구성되어 있는 구조이다.

데이터 이름은 반드시 문자열 형식이어야 하며, 큰 따옴표를 사용해야 한다.

값으로는 숫자, 문자열, 불리언(boolean), 객체, 배열, null가 올 수 있다.

 

이미지 출처 : www.tcpschool.com/json/intro

 

 

1) 값이 숫자, boolean, null인 경우

 

문자열이 아닌 값에는 큰 따옴표를 쓰지 않는다.

예를 들어 이름이 "id"인 프로퍼티의 값이 1이라는 숫자라면

{"id": 1} 로 표기한다.

 

boolean 값인 true, false와 빈 값인 null은 모두 소문자로 표기해야 한다.

boolean 예) {"male": true, "female": false}

 

null 예) {"name": null}

 

 

2) 값이 객체인 경우

"owner" 의 값은 또 하나의 JSON객체인 것을 확인할 수 있다.

이미지 출처 : www.tcpschool.com/json/json_datatype_object

 

3) 값이 배열인 경우

대괄호로 둘러싸여 있는 형태이며, 데이터 값만을 나열한다는 것이 특징이다.

이미지 출처 : www.tcpschool.com/json/json_datatype_array

 

3. JSON은 어떤 불편함을 보완해주는가?

결론부터 말하자면, 복잡한 형식의 객체 데이터도 전달하기 쉽다는 것이다.

 

예를 들어, php에서 자바스크립트로 배열값을 넘길 때 아래와 같은 소스 코드를 이용할 수 있다.

php상에서 echo implode(',', $배열); // 배열 요소들 사이에 ,를 넣어서 문자열로 변환 하고 echo

javascript상에서  var t = _t.spilt(','); // echo를 통해 받은 문자열 _t에서 ,를 기준으로 쪼개어 배열로 변환

 

그런데, 다차원 배열이거나 복잡한 형식의 객체를 넘겨야 하는 경우에는 이러한 방법은 매우 어려울 수 있다.

JSON은 이러한 불편함을 보완해준다.

JSON을 이용하면 배열이든 객체든 값이든 그 상태 바로 데이터를 주고 받을 수 있다.

 

4. JSON의 적용

언어마다 JSON 관련 라이브러리를 제공해주며, 대표적으로 Stringify/Parsing을 도와주는 메소드가 포함되어 있다.

- Stringify : JSON 객체를 주고 받을 때에는 문자열 형태로 주고 받게 되는데, JSON 데이터를 다른 서버의 단으로 넘겨야 한다면 JSON 객체를 문자열로 변환해주는 메소드를 사용하면 된다. 이렇게 문자열화된 JSON 데이터를 넘겨주는 것이다.

- Parsing : 전송받은 JSON 형태는 문자열 형태일 것이다. JSON 객체를 현재 서버에서 구조적으로 사용할 수 있게 하기 위해 전송 받은 JSON 문자열을 파싱해주는 작업이 필요하다. 이 작업을 담당해주는 메소드도 제공해줄 것이다.

 

JSON은 이런식으로 서버끼리 주고 받게 되는데, JSON 라이브러리는 언어별로 사용법이 다를 것이다.

그렇기 때문에 이 포스팅에서 언어별 JSON 라이브러리를 모두 소개해주기에는 시간 관계상 힘들 것 같고, 대신 간단한 검색 팁을 알려주고자 한다.

Google에 ['사용 언어' JSON 라이브러리] 라고 검색하면 참고 할만한 사이트가 많이 뜬다.

 

 

예제) [Java] Open API로 받아온 JSON 파싱하기 (다른 블로그)

https://velog.io/@garam0410/Java-OPEN-API-%ED%8C%8C%EC%8B%B1%ED%95%98%EA%B8%B0-JSON

 

예제) [Java] JSON 만들기 (다른 블로그)

https://ktko.tistory.com/entry/JAVA%EC%97%90%EC%84%9C-JSON-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0

 

예) [Python] OPEN API로 받아온 JSON 파싱하기 (Youtube)

https://www.youtube.com/watch?v=iLXNSjjWNtQ

 

예) Javascript

var info = {이름1:값1, 이름2:값2, ...}; //JSON 
var infoarr = JSON.parse(info); //JSON 형태 -> 자바스크립트의 객체로 변환, 프로그래밍적으로 제어할 수 있게됨.
var infos = JSON.stringify(infoarr); //infoarr 객체를 JSON의 형태인 텍스트로 변환

 

 

반응형

댓글