웹앱개발/Spring boot

JSON

heeyaaa! 2021. 6. 22. 17:07
SMALL

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 구조

  1. JSON 데이터는 이름과 값의 쌍으로 이루어집니다.(name-value형식의 쌍)
  2. JSON 데이터는 쉼표(,)로 나열됩니다.
  3. 객체(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 데이터를 처리하기 위한 다음과 같은 메소드를 제공하고 있습니다.

  1. JSON.stringify(JSON 문자열로 변환할 값): 자바스크립트 객체를 JSON 텍스트로 변환합니다.
  2. JSON.parse(JSON으로 변환할 문자열): JSON 형식의 텍스트를 자바스크립트 객체로 변환합니다.

 

 

참고

 

JSON이란 무엇인가?

JSON (JavaScript Object Notation) JavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식 Javascript에서 객체를 만들 때 사용하는 표현식을 의미한

velog.io

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

LIST

'웹앱개발 > 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