1 JSON 개요
source: categories/study/json/json_1.md
1. JSON 개요
- JSON(JavaScript Object Notation)은 애플리케이션이 네트워크를 통해(주로 RESTful API의 형태로) 통신할 수 있도록 해주는 데이터 포맷이다.
- JSON은 기술을 가리지 않으며 독점적이지 않고, 이식이 쉽다.
- 모든 현대적인 프로그래밍 언어(Java, JavaScript, Ruby, C#, PHP, Python, Groovy 등)와 플랫폼에서 JSON 데이터를 생성하고(직렬화) 받아들일(역직렬화) 수 있다.
- JSON은 또한 단순하다.
- 개발자에게 친근한 객체, 배열, 이름-값 쌍과 같은 구조로 이루어져있다.
- JSON의 용도는 REST(Representational State Transfer) 환경에 국한되지 않으며, 다음과 같은 환경에서도 사용할 수 있다.
- Node.js (package.json에 프로젝트 메타데이터를 저장한다.)
- MongoDB 등의 NoSQL 데이터베이스 (9장 참조)
- 카프카 등의 메시징 플랫폼 (10장 참조)
1.1 표준으로 본 JSON
- 일찍이 REST를 비방하던 사람들은 RESTful 웹 서비스를 비표준이라고 조롱하였으나, JSON은 사실 표준 규격이다.
- IETF(Internet Engineering Task Force)와 ECMA 인터내셔널(구 ECMA(European Computer Manufacturers Association))이 모두 JSON을 표준 규격으로 인정하고 있다.
- 더글라스 크락포드가 2001년 처음으로 JSON을 창안하였고, 2006년 IETF에 의해 RFC 4627에서 최초로 표준화 되었다.
- 2013년 가을에는 ECMA 인터네셔널이 ECMA 404로 JSON을 표준화 하였다.
- ECMA의 공인으로 JSON은 공식적인 국제 데이터 처리 표준이 되었다.
- 2014년 3월, 팀 브레이는 더글라스 크락포드의 IETF RFC 7158 초판의 개정판과 IETF 4627 표준(구판이므로 더 이상 배포되지 않는다)의 오류를 수정한 RFC 7159를 배포하였다.
1.2 간단한 예제
{
"thisIs": "My first JSON document"
}
- 유효한 JSON 문서는 다음 중 한 가지 형태를 갖는다.
- 중괄호(curly brace, {})로 감싼 객체
- 대괄호(bracket, [])로 감싼 배열
- 위의 예제는 키가
thisIs
, 값이My first JSON document
인 키-값 쌍 하나를 요소로 갖는 객체를 나타내고 있다. - (JSONLint)[https://jsonlint.com/]를 사용해서 실제로 이 문서가 유효한지 확인해보도록 하자.
- 해당 웹 페이지의 텍스트 영역에 예제를 붙여넣기 한 다음,
Validate
버튼을 누르면 다음과 같은 결과를 확인할 수 있다.
Valid JSON
책 읽는 중.. 4페이지