json 스키마 예제

이 예제에서는 각 고객이 배송 및 청구 주소를 모두 가질 수 있는 고객 레코드를 정의한다고 가정해 보겠습니다. 주소는 항상 동일합니다- 주소, 도시 및 주가 있으므로 주소를 저장하려는 모든 스키마의 일부를 복제하고 싶지 는 않습니다. 스키마를 더 자세히 만들 뿐만 아니라 나중에 업데이트하기가 더 어려워집니다. 우리의 가상의 회사가 미래에 국제 비즈니스를 시작하고 모든 주소에 국가 필드를 추가하려는 경우 주소가 사용되는 모든 곳보다 한 곳에서이 작업을 수행하는 것이 좋습니다. 이 예제의 한 개체는 다른 개체에 다른 날짜 형식을 사용합니다. 예를 들어, 다음 줄을 사용하여 인스턴스를 문자열로 제한할 수 있습니다. 이 섹션에서는 중첩된 데이터 구조를 보여 줍니다. fstab 파일의 항목에는 여러 가지 형식이 있을 수 있습니다. 다음은 $id 속성의 두 번째 목적인 파일의 다른 $ref URL에 대한 기본 URL을 선언한다는 예입니다. 예를 들어: 이 스키마를 사용하여 사용자가 이름과 나이를 올바르게 입력했는지 확인할 수 있습니다. 이 예제에서는 /etc/fstab 파일에 표시된 파일 시스템 마운트 지점의 가능한 JSON 스키마 표현을 보여 주십습니다. 예를 들어 개체에 유효한 날짜로 하려는 몇 가지 특성이 있는데, 이러한 패턴 중 하나에 정의된 대로 스키마에 대한 고유 식별자를 제공하며 대부분의 경우 다운로드위치를 나타냅니다.

스키마가 예상되는 모든 곳에서 사용할 수 있습니다. 항상 $ref 개체의 유일한 키로 사용합니다. 지금까지 우리의 JSON 스키마는 전적으로 자립되었습니다. 재사용, 가독성 및 유지 관리를 위해 여러 데이터 구조에서 JSON 스키마를 공유하는 것이 매우 일반적입니다. JSON 스키마를 정의하는 데 사용할 수 있는 키워드의 전체 목록을 http://json-schema.org 확인할 수 있습니다. 위의 스키마는 다음 JSON 코드의 유효성을 테스트하는 데 사용할 수 있습니다 – 우리는 다음 $ref 키워드를 사용하여 다른 곳에서이 스키마 스니펫을 참조 할 수 있습니다. $ref 설명하는 가장 쉬운 방법은 논리적으로 가리키는 것으로 대체된다는 것입니다. 따라서 위의 것을 참조하려면 JSON 스키마를 선언하려면 $schema 키워드를 사용합니다. 예: 다음 예제는 JSON 스키마가 제공할 수 있는 모든 값의 최종적인 것은 아닙니다.

이를 위해 사양 자체에 깊이 들어가야 합니다 – http://json-schema.org/specification.html 대해 자세히 알아보십시오. 예를 들어 여러 개의 필수 규칙이 필요한 경우 동일한 문서의 정의를 사용하는 경우 $ref 값은 파운드 기호(#)로 시작합니다. 그런 다음 슬래시 분리된 항목은 문서의 개체의 키를 통과합니다. 따라서 이 예제에서 „#/정의/주소”는 배열의 모든 항목에 유효한 스키마 특성이어야 하므로 json 개체여야 합니다. 따라서 „필수” 특성은 „oneOf”에 중첩되고 다른 방법은 아닙니다. 스키마를 사용하여 JSON 파일의 유효성을 검사하여 올바른 데이터 유형만 포함되도록 할 수 있습니다. 예를 들어 모든 날짜를 특정 형식으로 입력할 수 있습니다(예: YYYY-MM-DD).