JSON 포매터에 담긴 이야기
JSON은 오늘날 대부분의 웹 API가 사용하는 형식이지만 위원회가 설계한 것이 아닙니다. 발명되었다기보다 발견되었습니다. 프로그램 사이에서 데이터를 옮기기에 딱 충분한 JavaScript의 작은 부분집합이었습니다.
발견된 형식
2001년 무렵 Douglas Crockford와 State Software의 동료들은 플러그인 없이 브라우저와 서버가 데이터를 주고받을 방법을 찾고 있었습니다. 그들은 JavaScript가 이미 이해하던 객체와 배열 리터럴을 사용하고, 이 아이디어에 이름을 붙여 문법을 json.org에 올렸습니다. 명함 뒷면에 들어갈 만큼 짧은 것으로 유명합니다.
주석이 없는 이유
Crockford는 일찍이 JSON에서 주석을 없앴습니다. 사람들이 주석에 파서용 지시문을 넣기 시작해 상호 운용성이 깨질 수 있었기 때문입니다. 그는 파싱 전에 축소 도구로 주석을 지우라고 조언했습니다. 그래서 포매터는 주석을 예상치 못한 문자로 보고하고, 설정 파일용으로 JSON5와 JSONC 같은 형식이 생겼습니다.
웹 페이지에서 표준으로
JSON은 2006년 RFC 4627로 처음 기술되었습니다. Ecma는 2013년 ECMA-404를 발표했고, IETF는 2017년 기존 문서를 RFC 8259로 대체하며 시스템 간에 주고받는 JSON에 UTF-8을 요구했습니다. 문법은 json.org 이후 거의 바뀌지 않았습니다. 객체, 배열, 문자열, 숫자, true, false, null입니다.
숫자와 경로
JSON 자체는 숫자를 제한하지 않지만 대부분의 파서는 숫자를 64비트 부동소수점으로 저장합니다. 그래서 9007199254740991보다 큰 정수는 조용히 정밀도를 잃을 수 있고, 큰 ID는 문자열로 보내는 경우가 많습니다. 값을 가리키기 위해 Stefan Goessner가 2007년 XPath를 본떠 JSONPath를 제안했고, 2024년 RFC 9535 표준이 되었습니다. 이 포매터가 복사하는 경로는 달러 기호와 대괄호를 쓰는 그 표기법을 따릅니다.
자주 묻는 질문
JSON은 누가 발명했나요?
Douglas Crockford가 2000년대 초에 JSON을 정의하고 널리 알렸습니다. 그는 이미 존재하던 JavaScript의 부분집합이므로 자신이 발견한 것이라고 말합니다.
JSON은 왜 끝의 쉼표나 작은따옴표를 허용하지 않나요?
모든 언어가 같은 방식으로 파싱할 수 있도록 문법을 최대한 작게 유지했기 때문입니다. 편의 기능이 하나 늘 때마다 두 파서가 다르게 해석할 기회도 늘어납니다.
JSON은 JavaScript 객체와 같나요?
아니요. JSON은 텍스트입니다. 키에는 큰따옴표가 필요하고, 함수, undefined, 주석, NaN, Infinity는 JavaScript 코드에서는 쓸 수 있어도 JSON에서는 허용되지 않습니다.
시도해 볼 준비가 되셨나요?
브라우저에서 PictorX를 엽니다. 설치가 필요 없고 시작하는 데 신용 카드가 필요하지 않습니다.
JSON 포매터 열기