JSON 샘플 → JSON Schema
브라우저 처리JSON 샘플에서 JSON Schema(2020-12) 초안을 만듭니다. 배열 항목을 모두 합쳐 items를 정하고, 모든 항목에 있는 키만 required에 넣으며 1과 1.5가 섞이면 number로 넓힙니다.
- 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
데이터 검증 규칙을 처음부터 쓰는 대신, 실제 데이터 한 건을 넣으면 그 모양에 맞는 JSON Schema 초안이 나옵니다. 객체는 properties와 required, 배열은 items, 값은 string·integer·number·boolean·null 같은 type으로 정리되고 맨 위에 $schema 주소가 붙습니다.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"score": { "type": "array", "items": { "type": "number" } }
},
"required": ["id", "name", "score"]
}
JSON 샘플 → JSON Schema 사용 가이드
데이터 검증 규칙을 처음부터 쓰는 대신, 실제 데이터 한 건을 넣으면 그 모양에 맞는 JSON Schema 초안이 나옵니다. 객체는 properties와 required, 배열은 items, 값은 string·integer·number·boolean·null 같은 type으로 정리되고 맨 위에 $schema 주소가 붙습니다.
배열은 첫 항목만 보지 않고 모든 항목을 합쳐 items를 정합니다. 점수 배열에 90과 87.5가 함께 있으면 integer가 아니라 number가 되고, 객체 배열에서 일부 항목에만 있는 키는 properties에는 넣되 required에서는 뺍니다.
한 자리에 문자열과 null처럼 단순 값이 섞이면 "type": ["string", "null"]로, 객체와 숫자처럼 구조가 다른 값이 섞이면 anyOf로 나눠 적습니다.
사용 방법
- 'JSON 샘플' 칸에 스키마를 만들 데이터 예시를 붙여 넣습니다.
- '실행'을 누르면 $schema, type, properties, required가 담긴 스키마가 나옵니다.
- 결과를 받아 minLength, format, enum 같은 세부 규칙을 직접 추가합니다.
예시: 점수 배열에 정수와 소수가 섞인 경우
{"id":1,"name":"Kim","score":[90,87.5]}{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"score": { "type": "array", "items": { "type": "number" } }
},
"required": ["id", "name", "score"]
}실제 결과는 한 줄에 키 하나씩 펼쳐져 나오며, 여기서는 읽기 쉽게 줄였습니다.
이럴 때 쓰면 좋아요
- API 요청 본문 검증 규칙의 뼈대를 실제 요청 예시로 만들 때
- 설정 파일 형식을 문서화하고 편집기 자동 완성용 스키마를 만들 때
- 데이터 파이프라인에 들어오는 레코드 형식을 고정해 두고 싶을 때
- JSON Schema 검사기로 다른 데이터를 검사하기 위한 기준을 준비할 때
문제가 생겼을 때
샘플이 한 건뿐이면 모든 키가 필수로 보입니다. 키가 빠진 항목까지 담은 배열을 넣거나, 결과의 required 목록에서 직접 지우세요.
샘플에 정수만 있었기 때문입니다. 소수 예시를 함께 넣으면 number로 바뀌고, 아니면 결과에서 integer를 number로 고치세요.
활용 팁
- 빈 배열은 항목 모양을 알 수 없어 items 없이 type만 나옵니다. 항목이 있는 샘플을 넣으면 items까지 채워집니다.
- 만든 스키마는 JSON Schema 검사기에 넣고 원래 샘플로 한 번 검사해 통과하는지 확인해 두면 안전합니다.
자주 묻는 질문
draft 2020-12 주소를 $schema에 넣습니다. 이 결과에 쓰인 키워드(type, properties, required, items, anyOf)는 draft-07에서도 같은 뜻으로 쓰입니다.
아니요. 문자열은 모두 type string으로만 나옵니다. format: email이나 date-time은 의도를 알고 있는 사람이 직접 추가해야 합니다.
넣지 않습니다. 정의하지 않은 키를 막으려면 객체마다 "additionalProperties": false를 직접 추가하세요.