JSON Schema 생성기

왼쪽에 JSON을 붙여 넣으면 오른쪽에 스키마가 나타납니다. 입력하는 대로.

JSON Schema

사용 방법

  1. 왼쪽에 예시 JSON 문서를 붙여 넣으세요. 객체, 배열, 단일 값 모두 됩니다. 입력하는 대로 스키마가 생성됩니다.
  2. 스키마 버전(Draft 7 또는 2020-12)을 고르고 문자열 형식 감지, 예시 값 포함, 모든 속성을 필수로 표시할지 여부를 켜고 끄세요.
  3. 결과를 복사하거나 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단계. 둘 중 하나를 넘으면 오류를 내고 결과를 잘라 내지 않습니다. 파일 올리기는 로컬 파일만 읽으며 아무것도 업로드되지 않습니다.

스키마를 얻은 뒤 흔히 이어서 쓰는 도구입니다.