JSON Validator & Formatter
실시간 오류 검사로 JSON 검증 및 포맷팅
JSON 입력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
JSON의 역사
JSON (JavaScript Object Notation)은 2000년대 초반 Douglas Crockford에 의해 처음 명세되었습니다. 이 형식은 JavaScript의 객체 리터럴 표기법의 부분집합을 기반으로 했지만, 언어 독립적인 데이터 형식으로서의 유용성으로 인해 널리 채택되었습니다. 첫 JSON 메시지는 2001년 4월에 전송되었습니다. 이후 JSON은 단순성과 사용 용이성으로 인해 많은 애플리케이션에서 XML을 대체하며 웹 API의 사실상 표준이 되었습니다.
JSON이란?
JSON은 완전히 언어 독립적인 경량의 텍스트 기반 데이터 교환 형식입니다. JavaScript에서 파생되었지만, 현재는 사실상 모든 프로그래밍 언어에서 사용됩니다. 키-값 쌍과 정렬된 목록을 통해 데이터를 표현하여 사람이 읽기 쉽고 기계가 분석하기 쉽습니다.
JSON을 사용하는 이유
- 언어 독립성: 모든 프로그래밍 언어에서 사용 가능
- 자기 서술적: 데이터 구조가 명확하고 읽기 쉬움
- 경량: 데이터 전송 시 최소한의 오버헤드
- 빠름: 구문 분석과 생성이 쉬움
- 광범위한 지원: 대부분의 현대 언어에 내장 지원
- 웹 친화적: 브라우저 네이티브 지원
- 스키마 지원: JSON Schema로 검증 가능
- 중첩 구조: 복잡한 데이터 계층 지원
JSON 구문
JSON 구문은 JavaScript 객체 표기법에서 파생되었지만, 특정 규칙과 제한이 있습니다.
기본 구조
- 객체: 키-값 쌍의 순서 없는 집합
- 배열: 값의 순서가 있는 목록
지원되는 데이터 타입
- 문자열: 큰따옴표로 둘러싸인 유니코드 텍스트
- 숫자: 정수 또는 부동소수점
- 불리언: true 또는 false
- null: 값이 없음을 표현
- 객체: 키-값 쌍의 집합
- 배열: 값의 순서가 있는 목록
프로그래밍 언어의 JSON 지원
| 언어 | 구문 분석 메서드 | 문자열화 메서드 |
|---|---|---|
| JavaScript | JSON.parse() | JSON.stringify() |
| Python | json.loads() | json.dumps() |
| Java | ObjectMapper.readValue() | ObjectMapper.writeValueAsString() |
| C# | JsonSerializer.Deserialize() | JsonSerializer.Serialize() |
| Go | json.Unmarshal() | json.Marshal() |
| PHP | json_decode() | json_encode() |
| Ruby | JSON.parse() | JSON.generate() |
| Rust | serde_json::from_str() | serde_json::to_string() |
| Swift | JSONDecoder().decode() | JSONEncoder().encode() |
| Kotlin | Json.decodeFromString() | Json.encodeToString() |