JSON Schema 검증기
JSON 문법을 넘어 필수 항목, 값의 타입·범위, 배열과 조건부 규칙을 검사합니다. 스키마 자체를 먼저 확인한 뒤 별도 작업자에서 데이터를 평가합니다. 명시한 Draft 7 로컬 포인터 프로필에서 지원하는 규칙과 같은 문서 내부의 스키마 참조만 허용합니다.
주요 기능
- 내장한 공식 Draft 7 메타스키마로 스키마 자체를 먼저 검사
- 필수값·타입·속성·배열·enum/const·범위와 조합·조건부 규칙 검증
- 이스케이프한 속성 이름과 불리언 스키마를 포함한 로컬 JSON Pointer 참조
- 데이터 위반·입력/프로필 오류·시간초과/취소로 인한 판정 불가 구분
- 중복 JSON 키와 다른 십진수로 반올림되는 숫자 리터럴 거부
- 총 오류 수와 생략 수를 명시하여 최대100개 진단을 CSV·JSON으로 저장
사용 방법
- 고정된 Draft 7 로컬 프로필을 확인하고 스키마·데이터를 붙여 넣거나 JSON 파일을 읽습니다.
- 객체 루트에 Draft 7 $schema를 선언하고 같은 문서의 포인터 참조만 사용합니다.
- 검증을 실행하고 처리 단계와 데이터·스키마의 JSON Pointer 경로를 확인합니다.
- 입력을 수정해 다시 검사합니다. 입력을 바꾸면 이전 결과는 사라집니다.
- CSV 또는 JSON 보고서를 저장합니다. 미리보기 페이지는 저장 범위에 영향을 주지 않습니다.
활용 예시
- API 예제의 필수 항목 누락과 허용하지 않은 속성 확인
- 레코드 종류에 따라 달라지는 조건부 필수값 점검
- 배열 항목 타입·튜플 길이·중복 항목 검사
- 지원하지 않는 키워드를 명시적으로 확인하며 스키마 변경 검토
자주 묻는 질문
어떤 JSON Schema 방언을 지원하나요?
Draft 7 로컬 포인터 프로필만 지원합니다. 객체 루트에는 http://json-schema.org/draft-07/schema# 또는 HTTPS 형태를 선언해야 합니다. 불리언 루트는 선택한 Draft 7 프로필을 따릅니다. Draft 2019-09/2020-12·알 수 없는 키워드·format 검사는 조용히 무시하지 않고 거부하며 Draft 7 전체 호환을 주장하지 않습니다.
다른 URL이나 이름으로 스키마를 참조할 수 있나요?
같은 문서의 실제 스키마 위치를 가리키는 # 또는 #/… 참조만 가능합니다. $id·원격/URN/file 참조·이름 앵커는 거부하고 네트워크로 가져오지 않습니다. $ref 옆의 검증 키워드는 Draft 7에서 무시되므로 모호한 입력으로 거부합니다.
설명·기본값·예제도 검증 규칙인가요?
이들은 인식한 주석으로 집계하며 데이터 제약으로 실행하지 않습니다. 기본값을 삽입하지 않고 readOnly/writeOnly·contentMediaType/contentEncoding도 접근 권한이나 내용 디코딩 검사로 쓰지 않습니다. default/examples 내부 객체를 스키마로 잘못 탐색하지 않습니다.
문법상 올바른 JSON도 먼저 거부될 수 있나요?
중복된 디코딩 키, 짝 없는 유니코드 surrogate, 크기·깊이 한도와 숫자 정밀도 범위를 검사합니다. 무한대·overflow/underflow·파싱 후 다른 최단 십진 표기로 바뀌는 숫자는 거부합니다. 안전한 정수의 크기 범위를 넘는 값은 지원하지 않으며 일반 소수는 최단 십진수 값을 기준으로 처리합니다.
복잡한 스키마나 취소는 어떻게 처리하나요?
매번 새 작업자에서 실행하고 메인 화면의4초 감시 타이머가 작업자를 종료합니다. 평가 횟수·재귀 한도가 먼저 중단할 수도 있습니다. 시간초과·엔진 오류·취소는 판정 불가이며 데이터가 틀렸다는 증거가 아닙니다. 작업자를 사용할 수 없을 때 메인 화면에서 대신 실행하지 않습니다.
보고서에 모든 오류가 포함되나요?
완료한 실행에서 엔진이 반환한 진단 중 앞100개와 총개수를 보존하고 나머지 수를 명시합니다. 대안 분기는 모든 내부 오류 대신 조합 오류 하나로 나타날 수 있습니다. JSON Pointer 경로를 유지하고 알 수 없는 스키마 위치는 추측하지 않습니다. 상세 진단 원문은 영어로 제공됩니다. 진단별 메시지는 최대512자까지 보존합니다.
개인정보 안내
스키마·데이터·보고서는 현재 페이지 메모리에만 있습니다. 참조 URL을 가져오거나 입력을 업로드·자동 저장하지 않습니다. 내려받은 보고서에는 입력 필드 이름과 진단 내용이 포함될 수 있습니다.
댓글과 질문