JSON (JavaScript Object Notation)은
- JavaScript에서 Object Notation (객체 표기)의 목적으로 제안되었고,
JavaScript 언어의 subset 임.
하지만, 오늘날
JSON은 프로그램들 간에 데이터를 교환에 사용되는
대표적인 Light-weight data-interchange format으로 자리를 잡음.
- 기본적으로 Plain Text파일이기 때문에 인간도 쉽게 읽을 수 있고,
- UTF-8과 같은 표준 문자 인코딩을 사용하기 때문에 다양한 프로그래밍 언어로 작성된 프로그램들 사이에서도 쉽게 다룰 수 있음 (parsing이 쉬움).
- 사람이 쉽게 읽고 편집가능한 plain text 파일.
- Programming Language-independent.
- sequence 및 hierarchies 와 같은 구조화된 데이터(객체)를 표현할 수 있음.

YAML과 함께 2001년 등장하였음.
(YAML은 JSON의 superset이라고도 볼 수 있어서 JSON은 보다 간단하면서도 기계의 측면에서 효율적인 편)
Syntax
Data Representation : JSON은 크게 다음과 같은 2개의 구조를 취함.
- key-value pairs의 모임(collection) :
- 기본적으로 키 (double-quoted)와 해당 키에 대응하는 값의 pair들의 모임으로 구성됨.
"key": value로, colon:을 delimiter로 사용함.key가 double-quoted임을 주의할 것.- key-value pair간의 delimiter는 comma
,임.
- 이같은 모임은 curly bracket,
{ }으로 싸여지며, 해당 키들을 attributes로 가지는Object를 가르킴. - 프로그래밍 언어들에서
dictionary나hash table등과 같은 구조로 쉽게 매핑되며, - OOP에서의
Object에 쉽게 매핑가능해짐. - 이 경우, key들간의 순서는 의미를 가지지 않음.
- 기본적으로 키 (double-quoted)와 해당 키에 대응하는 값의 pair들의 모임으로 구성됨.
- ordered list of values :
- sequence에 해당하는 data structure로, key 대신에 값이 놓여있는 순서를 index로 삼음.
array나list,vector가 이에 대응하는 대표적인 data type임.- square bracket,
[ ]으로 싸여짐.
Objects- 하나의 Object는 여러 key-value pairs로 구성 (내부에 가짐)되며, 이들 각 pairs들의 순서는 의미가 없음.
- JSON 문서(or file)은 curly bracket (or brace)으로 둘러싸여진 object들로 구성됨.
- key-value pair 간의 delimiter는 comma임.
Ordered Lists (or Arrays)- 값들의 순서 있는 모임.
- 순서에 따라 각각의 값들에 접근 가능 (순서가 index.)
- square bracke으로 둘러싸임.
- 값들간의 delimiter는 comma임.
- 주의: Python과 달리 마지막에 comma로 끝나선 안됨-value간 사이에만 위치.
- Values
- String (문자열)
- 문자열은 문자(글자, character)의 sequence로 Unicode로 인코딩됨.
- double-quote로 둘러쌓임: singl-quote 사용 및 multi-line string등 불가.
- 만약, double-quote를 문자열 내에서 표시하려면, escape sequnce를 이용 (back-slash 뒤에 double-quote를 놓는 방식).
- character는 글자가 하나인 string으로 처리됨.
- 기본 encoding으로는 utf-8을 권장.
- Number (숫자)
- decimal(십진수)로 표현됨.
- real number와 integer 가 사용됨: complex number는 기본 지원타입이 아님.
- Boolean
true또는false로 표시됨.- 소문자로 시작하는 것에 유의
- null
- Python에서의 None에 해당함.
- 값이 없음을 의미.
- White space
- token사이에는 자유롭게 white space 문자가 위치할 수 있음.
- String (문자열)
Example
{
"이름": "가천",
"성": "김",
"나이": 21,
"주소": {
"세부주소": "수정구 성남대로 1342 AI관 228호",
"시": "성남",
"도": "경기도",
"우편번호": "1312-"
},
"전화번호": [
{
"종류": "직장",
"번호": "031 750 2617 "
},
{
"종류": "집",
"번호": "02 1234-1234"
}
],
"신규사용자": false
}
- 위의 예제는 하나의 Object 로 되어 있음.
- 해당 Object는
이름,주소등과 같은 attributes를 가짐.
더 읽어보면 좋은 URLs
2025.08.06 - [CE] - [Term] Serialization-Data Exchanged Format
[Term] Serialization-Data Exchnaged Format
Serialization의 일반적 의미메모리 객체 및 데이터를저장/전송 가능한 형태로변환하는 일반적인 개념메모리의 객체/데이터 구조를 "저장/전송 가능한 형태"로 변환하는 과정컴퓨터 메모리에 흩어
ds31x.tistory.com
2025.08.06 - [Python] - Python에서 JSON 다루기-json모듈
Python에서 JSON 다루기-json모듈
1. JSON이란?JSON (JavaScript Object Notation)은 경량의 데이터 교환 형식.데이터 교환 형식은 다른 이름으로 Serialized Data라고도 불리며, JSON은 그 중에서 Text Serialization 방식. JavaScript에서 시작되었지만 현
ds31x.tistory.com
2024.01.07 - [CE] - [Term] YAML (Yet Another Markup Language)
[Term] YAML (Yet Another Markup Language)
Human-friendly Unicode based Data Serialization Language인간친화적인 유니코드 기반의 데이터 직렬화 언어 https://yaml.org/spec/1.1/#id857168 YAML Ain’t Markup Language (YAML™) Version 1.1YAML Ain’t Markup Language (YAML™) Versio
ds31x.tistory.com
2024.01.07 - [CE] - [CE] Syntax of YAML [Simple Version]
[CE] Syntax of YAML [Simple Version]
기본적으로 indentation 으로 구조화를 시킴.indent 는 space 2칸 또는 4칸이 권장됨.2024.01.07 - [분류 전체보기] - [Term] YAML (Yet Another Markup Language) [Term] YAML (Yet Another Markup Language)Human-friendly Unicode based Data
ds31x.tistory.com
https://ds31x.blogspot.com/2023/07/ce-markup-languages.html
CE : Markup Languages
1. 정의 tag 등을 이용 하여 data의 structure 및 표현방식 등을 기술(describe) 하는 language. 문서의 기본 정보(content)에 추가적인 정보 (어떻게 시각적으로 표현할 것인지 혹은 content의 structure에...
ds31x.blogspot.com
'CE' 카테고리의 다른 글
| [CE] Compilation 의 종류 (0) | 2024.01.18 |
|---|---|
| [CE] Text file: Text 파일이란? (0) | 2024.01.07 |
| [CE] Syntax of YAML [Simple Version] (0) | 2024.01.07 |
| [Term] YAML (Yet Another Markup Language) (0) | 2024.01.07 |
| [Term] Prompt 란? : 프롬프트 의 정의. (0) | 2024.01.05 |