JSON Schema 검증기

JSON 데이터를 JSON Schema 정의에 대해 검증하세요. 경로가 포함된 상세 오류 보고서를 받으세요. 모든 처리는 브라우저에서 이루어집니다.

즉시 검증 오류 상세 클라이언트 측 처리

JSON Schema 검증기 사용 방법

1

스키마 입력

기대하는 구조를 기술하는 JSON Schema를 정의하세요.

2

데이터 입력

스키마에 대해 검증하려는 JSON 데이터를 붙여넣으세요.

3

검증

검증을 클릭하고 오류가 있는지 결과를 검토하세요.

JSON Schema란 무엇인가요?

JSON Schema는 JSON 문서에 주석을 달고 검증할 수 있게 해주는 어휘 체계입니다. 특정 애플리케이션에 어떤 JSON 데이터가 필요한지, 어떻게 상호작용하는지에 대한 계약을 제공합니다. JSON Schema는 검증, 문서화, 목 데이터 생성에 사용됩니다.

주요 기능

타입 검증

타입 검증: string, number, integer, boolean, array, object, null

제약조건

최소/최대 길이, 범위, 패턴, 필수 필드 등

구조 정의

중첩 객체, 배열, 복잡한 데이터 구조 정의

자주 묻는 질문

어떤 JSON Schema 버전을 지원하나요?

이 도구는 Ajv 라이브러리를 통해 JSON Schema Draft-07, Draft 2019-09, Draft 2020-12를 지원합니다. 가장 흔한 스키마 기능들이 지원됩니다.

중첩 객체를 검증할 수 있나요?

네! JSON Schema는 깊게 중첩된 객체와 배열을 지원합니다. 중첩의 모든 수준에서 properties와 items를 정의할 수 있으며, 각 필드마다 개별 검증 규칙을 둘 수 있습니다.

제 스키마가 유효하지 않으면 어떻게 되나요?

이 도구는 먼저 스키마 자체가 유효한 JSON Schema인지 검증합니다. 스키마에 오류가 있으면 데이터 검증을 시도하기 전에 그 오류들이 보고됩니다.

가장 많이 쓰이는 JSON Schema 키워드는 무엇인가요?

type (string, number, object, array, boolean, null), 중첩 스키마를 담는 properties, 필수 키를 나열하는 required, 고정 값 집합을 위한 enum, 정규식 제약 문자열을 위한 pattern, 그리고 범위 검사 minimum/maximum과 minLength/maxLength입니다. additionalProperties: false는 객체를 추가 키에 대해 엄격하게 만듭니다. 이들이 함께 API 검증 규칙의 대부분을 아우릅니다.

date-time, email 같은 format 키워드는 어떻게 동작하나요?

현대 JSON Schema에서 format은 기본적으로 주석이지 자동 단정이 아닙니다 - 검증기는 구성된 경우에만 강제하는데, 2020-12 스펙은 이를 별도의 format-assertion 어휘로 명시했습니다. 강제가 보장되어야 한다면 pattern이나 커스텀 키워드를 쓰고, 그 외에는 format을 상호운용성 메타데이터로 다루세요.

$ref란 무엇이고, 스키마 재사용은 어떻게 작동하나요?

#/$defs/address를 가리키는 $ref는 $defs 아래의 스키마 조각을 참조하여 사용되는 곳마다 그것에 대해 검증합니다 - 이것이 중복 제거 메커니즘입니다. Draft 2020-12는 이전 definitions를 $defs로 이름을 바꾸고, 댓글 트리 같은 재귀 구조를 위해 $dynamicRef를 공식화했습니다. 참조는 외부 문서를 가리킬 수도 있지만, 로컬로 번들하는 것이 더 흔합니다.

oneOf, anyOf, allOf는 어떻게 다른가요?

allOf는 모든 하위 스키마가 유효해야 합니다 - 교집합으로, 기반 스키마에 추가 제약을 합성할 때 씁니다. anyOf는 최소 하나가 필요합니다 - 합집합으로, 다형성 페이로드에 씁니다. oneOf는 정확히 하나가 필요합니다; 두 개 또는 0개의 하위 스키마가 유효하면 실패하는데, 이는 사람들이 예상보다 엄격해서 겹치는 스키마에서 뜻밖의 오류를 일으키는 흔한 원인입니다.

draft-07과 2020-12 사이에 무엇이 바뀌었나요?

2020-12은 스펙을 개별적으로 활성화 가능한 어휘들로 나누고(validation, annotation, format-assertion), definitions를 $defs로 이름 바꾸고, exclusiveMinimum을 단순 숫자로 단순화하고, 이전 items 키워드를 prefixItems와 items로 대체했습니다. 대부분의 도구는 둘 다 지원합니다; draft-07이 여전히 가장 널리 배포되어 있지만, 2020-12가 현재 공표된 표준입니다.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}