JSON(JavaScript Object Notation)
- 사람이 읽을 수 있는 텍스트 기반의 데이터 교환 표준
- 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식
- XML의 대안으로서 좀 더 쉽게 데이터를 교환하고 저장하기 위하여 고안됨
- 텍스트 기반이므로 어떠한 프로그래밍 언어에서도 JSON 데이터를 읽고 사용할 수 있음
JSON의 특징
- JSON의 문서 형식은 자바스크립트의 객체의 형식을 기반으로 만들어졌음
- 자바스크립트의 문법과 유사하지만 텍스트 형식일 뿐임
- 서버와 클라이언트 간의 교류에서 일반적으로 많이 사용됨
- 자바스크립트의 객체 표기법과 유사함
- 자바스크립트를 이용하여 JSON 형식의 문서를 쉽게 자바스크립트 객체로 변환할 수 있는 이점이 있음
- 다른 프로그래밍 언어를 이용해서 쉽게 만들 수 있음
- 특정 언어에 종속되지 않으며 대부분의 프로그래밍 언어에서 JSON 포맷 데이터를 핸들링 할 수 있는 라이브러리를 제공함
XML vs JSON
: 데이터를 나타낼 수 있는 방식은 여러가지가 있지만 대표적인 것은 XML이고, 이후 가장 많이 사용되는 것은 JSON입니다.
JSON과 XML의 공통점
- 데이터를 저장하고 전달하기 위해 고안되었습니다.
- 기계 뿐만 아니라 사람도 쉽게 읽을 수 있습니다.
- 계층적인 데이터 구조를 가집니다.
- 다양한 프로그래밍 언어에 의해 파싱될 수 있습니다.
- XMLHttpRequest 객체를 이용하여 서버로부터 데이터를 전송받을 수 있습니다.
JSON과 XML의 차이점
JSON | XML |
종료 태그를 사용하지 않음(태그를 사용하기 보단 중괄호({}) 같은 형식으로 하고, 값을 ','로 나열하기 때문에 표현이 간단) | 데이터 값 양쪽에 태그가 있다 |
구문이 XML보다 짧다 | |
XML 데이터보다 더 빨리 읽고 쓸 수 있다 | |
배열 사용 가능 | 배열 사용 불가능 |
XML 파서로 파싱 | 자바스크립트 표준 함수인 eval() 함수로 파싱 |
JSON 문법
- JSON 형식은 자바스크립트 객체와 마찬가지로 key / value가 존재할 수 있으며 key값이나 문자열은 항상 쌍따옴표를 이용하여 표기해야 합니다.
- 객체, 배열 등의 표기를 사용할 수 있습니다.
- 일반 자바스크립트의 객체처럼 원하는 만큼 중첩시켜서 사용할 수도 있습니다.
- JSON형식에서는 null, number, string, array, object, boolean 타입을 사용할 수 있습니다.
JSON 주석
: JSON은 주석을 사용하지 않는 게 좋지만 반드시 주석을 사용해야 한다면, 주석이 포함된 JSON 데이터를 파싱하기 전에 주석만을 먼저 제거해야 합니다.
JSON 구조
- JSON 데이터는 이름과 값의 쌍으로 이루어집니다.(name-value형식의 쌍)
- JSON 데이터는 쉼표(,)로 나열됩니다.
- 객체(object)는 중괄호({})로 둘러쌓아 표현합니다.
4. 배열(array)은 대괄호([])로 둘러쌓아 표현합니다.
JSON의 문제점
: AJAX는 단순히 데이터만이 아니라 JavaScript 그 자체도 전달할 수 있습니다. 이 말은 JSON 데이터라고 해서 받았는데 단순 데이터가 아니라 JavaScript가 될 수도 있고, 그게 실행 될 수 있다는 것입니다. (데이터인 줄 알고 받았는데 악성 스크립트가 될 수 있습니다.)
위와 같은 이유로 받은 내용에서 순수하게 데이터만 추출하기 위한 JSON 관련 라이브러리를 따로 사용하기도 합니다.
JSON이 가져올 수 있는 데이터
JSON으로 가져올 수 있는 데이터는 해당 자바스크립트가 로드된 서버의 데이터에 한정됩니다.
예를 들어, http://kwz.kr/json.js에서 불러올 수 있는 데이터는 kwz.kr 서버에 존재하는 것만 가능힙니다. (구글 데이터를 불러온다거나 네이버 데이터를 불러온다거나 할 수 없습니다.)
JSON은 단순히 데이터 포맷일 뿐이며 그 데이터를 불러오기 위해선 XMLHttpRequest()라는 JavaScript 함수를 사용해야 하는데 이 함수가 동일 서버에 대한 것만 지원하기 때문입니다. ( JSONP 또는 프락시 역할을 하는 서버쪽 Script 파일로 가능하게도 할 수 있습니다.)
자바스크립트와 JSON
: 자바스크립트는 JSON 데이터를 처리하기 위한 다음과 같은 메소드를 제공하고 있습니다.
- JSON.stringify(JSON 문자열로 변환할 값): 자바스크립트 객체를 JSON 텍스트로 변환합니다.
- JSON.parse(JSON으로 변환할 문자열): JSON 형식의 텍스트를 자바스크립트 객체로 변환합니다.
참고
JSON이란 무엇인가?
JSON (JavaScript Object Notation) JavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식 Javascript에서 객체를 만들 때 사용하는 표현식을 의미한
velog.io
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
'웹앱개발 > Spring boot' 카테고리의 다른 글
응답 Response (0) | 2021.06.22 |
---|---|
객체지향프로그램 (0) | 2021.06.22 |
HTTP 1.1 / BufferdReader(@RequestBody) (0) | 2021.06.22 |
Content-Type (0) | 2021.06.22 |
sts 프로젝트 설정 (0) | 2021.06.21 |