JSON(JavaScript Object Notation)은 구조화된 데이터를 텍스트로 표현하는 교환 형식이다. 이름은 자바스크립트에서 왔지만 특정 프로그래밍 언어에 한정되지 않는다. ([RFC 8259](https://www.rfc-editor.org/rfc/rfc8259)) - 객체는 이름과 값의 쌍, 배열은 순서가 있는 값의 목록을 표현한다. 작품 정보의 예로 `{"title":"빈 책","pages":32}`처럼 이름은 문자열로, 쪽수는 숫자로 적을 수 있다. - 문자열, 숫자, 참, 거짓, null, 객체와 배열을 구분한다. `"32"`와 `32`는 같은 자료형이 아니며, [[API]]로 주고받는 쪽에서 무엇을 기대하는지 맞춰야 한다. - 객체 안의 이름을 중복시키면 프로그램마다 처리 결과가 달라질 수 있다. 문법을 통과한 것과 항목이 필요한 의미를 담은 것은 별개이며, [[JSON 스키마]]로 구조 조건을 정의할 수도 있다. ## 기타 등등 - JSON 숫자에는 Infinity와 NaN을 적을 수 없다. 어떤 프로그래밍 언어에서 사용하는 값이 JSON에서도 모두 허용되지는 않는다. [출처](https://www.rfc-editor.org/rfc/rfc8259) - JSON 문서의 최상위 값은 객체나 배열만이 아니다. 문자열이나 숫자 같은 값 하나도 문법상 JSON 텍스트가 될 수 있다. [출처](https://www.rfc-editor.org/rfc/rfc8259) #데이터 #파일 #기초