JSON 스키마 생성
JSON to JSON Schema
하나 또는 여러 예시에서 JSON 스키마를 추론하고 발견한 형태를 합칩니다.
예시 문서를 JSON Schema(2020-12)로 기술합니다. 타입, properties, `required`, 그리고 반복되는 모양을 위한 중첩 `$defs`가 나옵니다. 계약 테스트나 OpenAPI 컴포넌트처럼 예시 대신 스키마를 요구하는 곳에 씁니다.
예시 JSON
.json 파일 놓기
이 탭에서 읽습니다. 올라가지 않습니다.
가진 원소를 전부 넣으세요. 레코드가 하나 늘 때마다 추측이 좁아집니다. 어느 하나에 없는 필드가 선택 필드가 되는 근거입니다.
TypeScript
사용 방법
가진 레코드를 되도록 많이 붙여넣습니다
배열은 첫 원소만이 아니라 모든 원소를 읽어서 합칩니다. 레코드가 셋이면 하나일 때보다 훨씬 많은 것을 알려 줍니다. 어느 하나에 없는 필드가 바로 그 필드를 선택으로 만드는 근거이기 때문입니다.
루트 타입 이름을 정합니다
중첩된 객체는 그것을 담은 키 이름을 따르고, 배열이면 단수형으로 바뀝니다. `users`는 `User`가 됩니다. 이름을 직접 정해야 하는 건 루트뿐입니다.
출력 아래의 숫자를 확인합니다
타입 수, 선택 필드 수, 유니온 수, 합친 레코드 수가 나옵니다. 유니온이 0보다 크면 어떤 필드가 표본 안에서 서로 다른 종류의 값을 가졌다는 뜻이니, 결과를 코드베이스에 붙여넣기 전에 한 번 볼 만합니다.
스키마를 검증기로 가져갑니다
출력에 `$schema` 키워드가 들어 있어서, 이 사이트의 JSON Schema 검사 도구나 다른 2020-12 구현에 바로 넣을 수 있습니다.
자주 묻는 질문
어떤 draft인가요?
`$schema` 키워드에 적힌 대로 2020-12입니다. 재사용되는 모양은 `$defs`에 넣고 `$ref`로 참조하는데, 이건 그 draft의 표기입니다. Draft-07 도구는 `definitions`를 기대하므로 이 참조를 풀지 못합니다.
타입 말고 다른 제약이 왜 없나요?
`format`, `minLength`, `pattern`, `enum`은 내지 않습니다. 전부 몇 개의 레코드에서 추측해야 하는 것들이고, 멀쩡한 운영 데이터를 거부하는 스키마는 그저 느슨한 스키마보다 나쁩니다. 근거를 댈 수 있는 제약만 직접 넣으세요.
`additionalProperties`는 설정되나요?
열어 둡니다. 즉 추가 키가 있어도 통과합니다. 닫아 버리면 API가 나중에 추가하는 필드마다 검증이 실패하고, 표본만으로는 그 모양이 닫힌 것인지 알 수 없습니다.
`required`는 어떻게 정해지나요?
그 모양으로 합쳐진 모든 레코드에 있었던 속성만 required가 됩니다. 레코드를 하나만 넣으면 전부 required가 되고, 다섯 개를 넣으면 그때부터 스키마가 의미 있는 말을 하기 시작합니다.
이 도구로 이어지는 것
JSON 타입스크립트 변환
JSON to TypeScript
JSON 예시에서 타입스크립트 인터페이스를 추론하고 선택적 필드와 유니온을 합칩니다.
JSON Zod 스키마 변환
JSON to Zod Schema
JSON 예시로 Zod 스키마를 만들며 nullable·optional·열거형을 추론합니다.
JSON 스키마 검증
JSON Schema Validator
문서를 JSON 스키마로 검증하고 실패한 위치를 경로와 함께 보여 줍니다.
JSON 정렬·검사
JSON Formatter & Validator
JSON을 보기 좋게 정렬하거나 압축하고, 문법 오류가 난 줄과 열을 정확히 짚어 줍니다.
다음 단계
이 도구의 결과를 그대로 받을 수 있는 도구들입니다.
JSON 스키마 검증
JSON Schema Validator
문서를 JSON 스키마로 검증하고 실패한 위치를 경로와 함께 보여 줍니다.
JSON 타입스크립트 변환
JSON to TypeScript
JSON 예시에서 타입스크립트 인터페이스를 추론하고 선택적 필드와 유니온을 합칩니다.
JSON Zod 스키마 변환
JSON to Zod Schema
JSON 예시로 Zod 스키마를 만들며 nullable·optional·열거형을 추론합니다.
OpenAPI 점검
OpenAPI Linter
OpenAPI 문서에서 누락된 응답, 쓰이지 않는 스키마, 아무것도 가리키지 않는 참조처럼 코드 생성기를 깨뜨리는 결함을 점검합니다.
JSON CSV 변환
JSON ⇄ CSV
중첩 JSON을 점 표기 열 이름으로 펼치거나, 표에서 객체를 다시 만듭니다.
JSON 비교
JSON Diff
키 순서를 무시하고 두 JSON을 구조로 비교해 추가·삭제·변경된 경로를 알려 줍니다.