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 만들기 (다른 블로그)
예) [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의 형태인 텍스트로 변환
'Frontend > JavaScript' 카테고리의 다른 글
Ajax(2) - jQuery로 사용하기 (0) | 2021.02.26 |
---|---|
Ajax(1) - 기본 개념 소개와 동작 원리 (0) | 2021.02.25 |
JavaScript와 php와의 통신 (0) | 2020.09.18 |
id를 이용하여 속성 적용 제외하기 (0) | 2020.09.03 |
[jQuery] index를 이용한 객체 선택 완벽설명 (0) | 2020.09.03 |
댓글