728x90
JSON이란?
- JavaScript Object Notation의 약자로 사람이 읽을 수 있는 텍스트 기반의 데이터 교환 표준이다.
- XML의 대안으로 좀 더 쉽게 데이터를 교환하고 저장하기 위해 만들어졌다.
- 텍스트 기반이기 때문에 여러 프로그래밍 언어에서 사용이 가능하다.
특징
- 자바스크립트를 확장하여 만들어졌다.
- 자바스크립트 객체 표기법을 따른다.
- 사람과 기계가 모두 읽기 편하도록 고안되었다.
- 프로그래밍 언어와 운영체제에 독립적이다.
사용 범위
- JSON은 문자열을 전송받은 후에 해당 문자열을 바로 파싱한다 -> XML 보다 더욱 빠른 처리 속도를 보인다.
- HTML과 자바스크립트가 연동되어 빠른 응답이 필요한 웹 환경에서 많이 사용된다.
- 전송받은 데이터의 무결성을 사용자가 직접 검증해야하기 때문에 데이터 검증이 필요한 곳에는 스키마를 사용하여 데이터 무결성을 검증할 수 있는 XML이 많이 사용된다.
문법
- 자바스크립트의 객체 표기법에서 리터럴(literal)과 프로퍼티(property)를 표현하는 방법만 가져와서 사용한다.
- -> 모양과 규칙이 매우 단순하다.
- 브라우저 영역에서도 쉽고 빠르게 그 의미를 해석할 수 있으며, 다른 프로그래밍 언어에서 구현하기 쉽다.
- 리터럴(literal)
- 변수와 다르게 해석되는 값 그 자체
- 변수(variable)
- 데이터(data)를 저장할 수 있는 메모리 공간
- 값이 변경될 수 있다.
- 객체(Object)
- 실생활에서 인식할 수 있는 사물
- JSON에서 객체란 이름(name)과 값(value)으로 구성된 프로퍼티(property)의 정렬되지 않은 집합이다.
- 주석
- 시스템 간의 연동과 호환성을 위한 조치이기 때문에 주석이 들어가지 않는 것이 바르다고 규정하고 있다.
- 되도록 주석을 사용하지 않는 것이 좋다.
구조
- JSON은 자바스크립트의 객체 표기법으로부터 파생된 부분 집합이다.
- JSON 데이터는 이름과 값의 쌍으로 이루어진다.
- JSON 데이터는 쉼표(,)로 나열된다.
- 객체(object)는 중괄호 {}로 둘러쌓아 표현한다.
- 배열(array)은 대괄호 []로 둘러쌓아 표현한다.
"dog": [
{"name": "식빵", "family": "웰시코기", "age": 1, "weight": 2.14},
{"name": "콩콩", "family": "포메라니안", "age": 3, "weight": 2.5},
{"name": "젤리", "family": "푸들", "age": 7, "weight": 3.1}
]
타입
- 숫자(number)
- 정수(integer)
- 부호를 가지는 소수 부분이 없는 수
- 실수(fraction)
- 소수 부분을 가지는 수
- 지수(exponent)
- e표기법
- 매우 큰 수나 매우 작은 수를 표현할 때 표현할 수 있다.
- 정수(integer)
- 문자열(string)
- 일련의 연속된 문자의 집합
- 큰따옴표("") 안에 유니코드 문자들의 나열로 구성된다.
- 자바스크립트에서는 문자열을 표현할 때 큰따옴표("")와 작은따옴표('')를 모두 사용할 수 있지만, JSON 에서는 오직 큰따옴표("")만을 사용할 수 있다.
- 이스케이프 시퀀스(escape sequence)
- 문자열이 화면에 출력될 때 사용하게 될 특수한 문자를 위해 만들어졌다.
- 역슬래시(\)와 특정 문자와의 조합으로 사용한다.
- \b : 백스페이스
- \f : 폼 피드(form feed)
- \n : 개행
- \r : 캐리지 리턴(carriage return)
- \t : 탭(tab)
- \" : 큰따옴표
- \/ : 슬래시
- \\ : 역슬래시
- \uHHHH : 16진수 네 자리로 표현된 유니코드 문자
- 불리언(boolean)
- 항상 true와 false를 소문자로 표기해서 사용해야 한다.
- 객체(object)
- 데이터 이름과 값의 한 쌍으로 구성된 프로퍼티의 정렬되지 않은 집합
- 중괄호 ({})로 둘러싸여 있다.
- 쉼표 (,) 를 사용하여 프로퍼티를 여러 개 가질 수 있다.
- 프로퍼티의 순서는 중요하지 않으며, 데이터의 이름은 문자열로 반드시 큰따옴표("")를 사용해야 한다.
- 객체 안의 객체
- 데이터의 값이 객체라면 객체 안에 객체가 포함되는 계층 구조가 형성된다.
- 배열(array)
- 여러 개의 데이터가 순서를 가지고 나열된 집합
- 대괄호 ([])로 둘러싸여 있다.
- 쉼표 (,)를 사용하여 여러 개의 데이터를 나열할 수 있다.
- JSON에서 제공하는 기본 타입을 모두 저장할 수 있다.
- 배열과 객체의 차이
- 여러 데이터를 묶어놓은 집합이라는 점에서 비슷하지만 객체는 프로퍼티의 집합, 배열은 데이터값의 집합이라는 차이가 있다.
- JSON 배열은 여러 타입의 배열 요소를 가질 수 있다.
- null
- 아무런 값도 가지고 있지 않은 빈 값
- 항상 null을 소문자로 표기해서 사용해야 한다.
- undefined는 JSON에서 제공하지 않는다.
----
728x90
'Programming' 카테고리의 다른 글
| EP(Enterprise Portal) 알아보기 (0) | 2021.08.15 |
|---|---|
| 툴팁(tooltip) 알아보기 (0) | 2021.08.14 |
| As-Is, To-Be 분석 알아보기 (0) | 2021.08.14 |
| 레거시 시스템(legacy system) 알아보기 (0) | 2021.08.13 |
| EAI(Enterprise Application Integration) 알아보기 (0) | 2021.08.12 |