본문으로 건너뛰기

JSON 스키마 검증

JSON Schema Validator

문서를 JSON 스키마로 검증하고 실패한 위치를 경로와 함께 보여 줍니다.

JSON 문서를 JSON Schema draft 2020-12로 검증합니다. 전부 브라우저 안에서 돕니다. 공식 JSON-Schema-Test-Suite의 필수 테스트 1,299건을 모두 통과하고, 실패는 인스턴스 위치와 그것을 낸 키워드와 함께 알려 줍니다.

🔒 브라우저 안에서만 처리json-schemavalidatejson

스키마 (draft 2020-12)

검증할 데이터

결과

판정

유효하지 않음

실패 개수

3

인스턴스 위치키워드문제
/portmaximum65535 이하여야 합니다
/tagsuniqueItems0번과 1번 항목이 같습니다
/debugfalse여기서는 어떤 값도 통과할 수 없습니다(스키마가 false입니다)
검증은 전부 이 탭에서 JSON Schema draft 2020-12 기준으로 돌아가며, 공식 JSON-Schema-Test-Suite의 필수 테스트 1,299건을 모두 통과합니다. $ref 는 스키마 자신과 붙여넣은 추가 문서, 그리고 함께 담긴 2020-12 메타 스키마 안에서만 풉니다. 원격 참조는 가져오지 않고 거절하므로 결과가 네트워크에 좌우되지 않습니다. format 은 강제하지 않고 주석으로만 보고합니다. 2020-12의 기본 동작입니다.

사용 방법

  1. 스키마와 데이터를 붙여넣습니다

    두 상자 모두 입력하는 대로 다시 검증합니다. 어느 쪽의 문법 오류인지 따로 알려 주므로 어디가 깨졌는지 알 수 있습니다.

  2. `$ref`가 있으면 참조되는 문서를 더합니다

    추가 스키마를 켜고 붙여넣습니다. 문서 하나여도 되고 각각 `$id`가 있는 배열이어도 됩니다. 네트워크로 가져오지 않으므로, 파일이 여러 개로 나뉜 스키마도 여기서 검증됩니다.

  3. 실패 표를 읽습니다

    줄마다 인스턴스 경로, 실패한 키워드, 무엇을 기대했는지가 나옵니다. 이슈에 붙여넣을 거라면 전체를 JSON으로 복사하면 됩니다.

자주 묻는 질문

`"format": "email"`이 왜 강제되지 않나요?

2020-12에서 `format`은 기본적으로 주석이기 때문입니다. 검증기가 보고만 하고 검사하지 않아도 되고, 대부분 정확히 그렇게 합니다. 강제해야 한다면 `pattern`을 쓰거나 format-assertion 어휘를 켠 검증기를 쓰세요.

원격 `$ref`를 풀지 못했습니다.

원격 참조는 가져오지 않고 거절합니다. 네트워크로 나가는 검증기는 DNS와 남의 가동률에 결과가 좌우되고, 어떤 스키마를 검증 중인지 그쪽에 알려 주게 됩니다. 참조되는 문서를 추가 스키마 상자에 붙여넣으세요.

어떤 draft를 지원하나요?

2020-12입니다. Draft-07 스키마도 대개 그대로 통과합니다. 키워드 대부분이 그대로이기 때문입니다. 다만 `definitions`는 `$defs`가 아니고, 튜플에서 `items`의 뜻이 다르며, `$recursiveRef`는 사라졌습니다. 넘겨짚기 전에 `$schema` 줄을 확인하세요.

필드 하나가 틀렸는데 왜 오류가 이렇게 많나요?

`anyOf`, `oneOf`, `allOf` 안에서 실패하면 실패한 가지를 전부 보고하기 때문입니다. 명세가 출력 단위에 그렇게 담으라고 정하고 있습니다. 보통은 첫 줄이 원하는 것이고, 나머지는 다른 가지도 왜 맞지 않았는지를 설명합니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.