JSON Schema 유효성 검사기

JSON 데이터를 JSON Schema에 대해 온라인으로 검사. Draft-07 및 Draft 2020-12 지원. 오류 경로(예: $.items[0].name)와 상세 메시지 표시. 무료, 100% 클라이언트사이드.

100% 클라이언트 사이드 데이터가 브라우저 밖으로 나가지 않습니다 무료 · 회원가입 불필요

사용 방법

  1. 왼쪽에 JSON Schema를, 오른쪽에 JSON 데이터를 붙여넣습니다.
  2. 드롭다운에서 스키마 초안(Draft-07 또는 Draft 2020-12)을 선택합니다.
  3. Validate 버튼을 클릭합니다 (Ctrl+Enter 단축키 사용 가능).
  4. 유효한 경우 데이터가 스키마에 일치한다는 녹색 메시지가 표시됩니다.
  5. 유효하지 않은 경우 각 오류의 JSON 경로, 오류 메시지, 추가 파라미터가 나열됩니다.

Load Example을 클릭하면 샘플 User 스키마와 JSON이 자동으로 채워져 바로 사용해볼 수 있습니다.

오류 출력 이해하기

각 유효성 검사 오류에는 세 가지 정보가 포함됩니다:

  • 경로 — 실패한 값의 JSON Pointer (예: /items/0/price, 최상위 레벨은 (root)).
  • 메시지 — AJV의 쉬운 설명 (예: must be integer, must have required property ‘name’).
  • 파라미터 — 허용된 타입, 최솟값, 필요한 패턴 등 추가 컨텍스트.

주요 JSON Schema 키워드

  • type — JSON 타입 제한: string, number, integer, boolean, array, object, null.
  • required — 객체에 반드시 있어야 하는 속성 이름 배열.
  • properties — 객체의 각 명명된 속성에 대한 제약 정의.
  • additionalProperties: falseproperties에 없는 속성 거부.
  • minimum / maximum — 숫자 범위 제약.
  • minLength / maxLength — 문자열 길이 제약.
  • pattern — 정규식으로 문자열 검증 (예: ”^[a-z]+“).
  • enum — 고정된 값 집합으로 제한.
  • items — 배열 요소의 스키마 정의.

스키마 예시

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "required": ["name", "age"],
  "properties": {
    "name":  { "type": "string", "minLength": 1 },
    "age":   { "type": "integer", "minimum": 0 },
    "email": { "type": "string" }
  },
  "additionalProperties": false
}

유효한 데이터: {"name":"Alice","age":30}
유효하지 않은 데이터: {"name":"","age":-1,"extra":true} — 세 개의 오류가 발생합니다.

FAQ

지원되는 JSON Schema 초안은 무엇인가요?

Draft-07(가장 널리 사용되며 OpenAPI 3.0 및 많은 검사기와 호환)과 Draft 2020-12(최신 명세)를 지원합니다. 검증 전 드롭다운으로 초안을 전환하세요.

/user/age 같은 오류 경로는 무엇을 의미하나요?

오류 경로는 JSON Pointer 구문(RFC 6901)을 따릅니다. /user/age는 user 객체 내의 age 속성이 유효성 검사에 실패했음을 의미합니다. 루트 객체는 /로 표시되며, 배열 항목은 /items/0, /items/1 등으로 나타납니다.

JSON Schema란 무엇인가요?

JSON Schema는 JSON 문서를 주석 처리하고 유효성을 검사하기 위한 어휘입니다. JSON 객체의 예상 구조, 유형, 필수 필드, 값 범위, 패턴을 정의할 수 있습니다. API 요청/응답 검증, 설정 파일 검증, 데이터 파이프라인 검증 등에 널리 사용됩니다.

배열을 루트로 하는 JSON을 검증할 수 있나요?

네. 스키마를 배열로 정의하세요(예: {"type": "array", "items": {"type": "string"}}). 그런 다음 ["a", "b"]와 같은 JSON 배열을 데이터로 붙여넣으면 됩니다.

데이터가 서버로 전송되나요?

아니요. 유효성 검사는 AJV 라이브러리를 사용하여 브라우저에서 완전히 실행됩니다. 스키마와 JSON 데이터는 사용자의 기기를 벗어나지 않습니다.