JSON Schema 생성기
왼쪽에 JSON을 붙여 넣으면 오른쪽에 스키마가 나타납니다. 입력하는 대로.
JSON Schema
사용 방법
- 왼쪽에 예시 JSON 문서를 붙여 넣으세요. 객체, 배열, 단일 값 모두 됩니다. 입력하는 대로 스키마가 생성됩니다.
- 스키마 버전(Draft 7 또는 2020-12)을 고르고 문자열 형식 감지, 예시 값 포함, 모든 속성을 필수로 표시할지 여부를 켜고 끄세요.
- 결과를 복사하거나 schema.json으로 내려받으세요. 업로드는 없습니다. 문서 전체가 브라우저에서 해석됩니다.
예시
예시 JSON
{ "id": 42, "name": "김민준", "email": "minjun@example.com", "active": true, "tags": ["admin", "editor"], "profile": { "score": 4.5, "verified": false } }
JSON Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" }, "active": { "type": "boolean" }, "tags": { "type": "array", "items": { "type": "string" } }, "profile": { "type": "object", "properties": { "score": { "type": "number" }, "verified": { "type": "boolean" } }, "required": ["score", "verified"], "additionalProperties": false } }, "required": ["id", "name", "email", "active", "tags", "profile"], "additionalProperties": false }
기본 규칙으로 생성했습니다. Draft 7, 형식 감지 켜짐, 모든 속성 필수. 이메일 문자열에는 형식 힌트가 붙고 정수는 정확히 유지되며 중첩된 profile은 자체 객체 스키마가 됩니다.
규칙, 한계, 알려진 문제
- 타입은 예시에서 추론합니다. object, array, string, integer, number, boolean, null입니다. 배열 항목은 합치며 여러 요소의 객체는 키를 합집합으로 모으고 일부 요소에 없는 키는 필수로 표시하지 않습니다.
- 한 배열에 타입이 섞이면 anyOf가 되고, 빈 배열은 items 없이 type:array가 됩니다(예시에서 요소 타입을 알 수 없습니다).
- 문자열 형식(email, UUID, URI, date, date-time)은 값에서 추측한 힌트이며 모든 가능한 값을 검증하지는 않습니다. 스위치로 끌 수 있습니다.
- 중복 키는 JSON.parse처럼 마지막 값을 씁니다. 엄격한 JSON(RFC 8259)만 받아 주석, 끝 쉼표, 작은따옴표는 줄/열과 함께 거부합니다.
- 스키마는 표준 JSON이므로 키워드와 출력이 페이지 언어에 따라 바뀌지 않습니다. 예시 값은 원래 타입으로 재구성하므로 극단적인 정수(예: 12345678901234567890)는 예시에서만 반올림될 수 있습니다.
- 한도: 100만 자, 중첩 512단계. 둘 중 하나를 넘으면 오류를 내고 결과를 잘라 내지 않습니다. 파일 올리기는 로컬 파일만 읽으며 아무것도 업로드되지 않습니다.
관련 도구
스키마를 얻은 뒤 흔히 이어서 쓰는 도구입니다.