JSON-스키마

JSON Schema는 JSON 데이터의 구조를 정의하기위한 JSON 기반 형식의 사양입니다. 그것은 2011 년에 만료 된 IETF 초안으로 작성되었습니다. JSON 스키마-

  • 기존 데이터 형식을 설명합니다.
  • 사람과 기계가 읽을 수있는 명확한 문서.
  • 자동화 된 테스트에 유용한 완전한 구조 검증.
  • 구조적 검증을 완료하고 클라이언트가 제출 한 데이터를 검증합니다.

JSON 스키마 유효성 검사 라이브러리

현재 다양한 프로그래밍 언어에 사용할 수있는 여러 유효성 검사기가 있습니다. 현재 사용 가능한 가장 완벽하고 호환되는 JSON 스키마 유효성 검사기는 JSV입니다.

언어 도서관
WJElement (LGPLv3)
자바 json-schema-validator (LGPLv3)
.그물 Json.NET (MIT)
액션 스크립트 3 프리가 (MIT)
Haskell aeson-schema (MIT)
파이썬 Jsonschema
루비 자동 분석 (ASL 2.0); ruby-jsonschema (MIT)
PHP php-json-schema (MIT). json-schema (Berkeley)
자바 스크립트 질서 정연 (BSD); JSV; json-schema; Matic (MIT); Dojo; 인내 (수정 된 BSD 또는 AFL 2.0); schema.js.

JSON 스키마 예

다음은 클래식 제품 카탈로그 설명을 다루는 기본 JSON 스키마입니다.

{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "title": "Product",
   "description": "A product from Acme's catalog",
   "type": "object",
	
   "properties": {
	
      "id": {
         "description": "The unique identifier for a product",
         "type": "integer"
      },
		
      "name": {
         "description": "Name of the product",
         "type": "string"
      },
		
      "price": {
         "type": "number",
         "minimum": 0,
         "exclusiveMinimum": true
      }
   },
	
   "required": ["id", "name", "price"]
}

이 스키마에서 사용할 수있는 다양한 중요 키워드를 확인해 봅시다.

Sr. 아니. 키워드 및 설명
1

$schema

$ schema 키워드는이 스키마가 초안 v4 사양에 따라 작성되었음을 나타냅니다.

2

title

이것을 사용하여 스키마에 제목을 부여합니다.

description

스키마에 대한 약간의 설명입니다.

4

type

type 키워드는 JSON 데이터에 대한 첫 번째 제약 조건을 정의합니다. JSON 개체 여야합니다.

5

properties

JSON 파일에서 사용할 다양한 키와 해당 값 유형, 최소 및 최대 값을 정의합니다.

6

required

이것은 필수 속성 목록을 유지합니다.

7

minimum

이는 값에 적용되는 제약이며 허용 가능한 최소 값을 나타냅니다.

8

exclusiveMinimum

"exclusiveMinimum"이 있고 부울 값이 true 인 경우 인스턴스가 "minimum"값보다 크면 유효합니다.

9

maximum

이는 값에 적용되는 제약이며 허용 가능한 최대 값을 나타냅니다.

10

exclusiveMaximum

"exclusiveMaximum"이 있고 부울 값이 true 인 경우 인스턴스가 "maximum"값보다 엄격하게 낮 으면 유효합니다.

11

multipleOf

이 키워드 값으로 인스턴스를 나눈 결과가 정수인 경우 숫자 인스턴스는 "multipleOf"에 대해 유효합니다.

12

maxLength

문자열 인스턴스의 길이는 최대 문자 수로 정의됩니다.

13

minLength

문자열 인스턴스의 길이는 최소 문자 수로 정의됩니다.

14

pattern

정규식이 인스턴스와 성공적으로 일치하면 문자열 인스턴스가 유효한 것으로 간주됩니다.

당신은 확인할 수 있습니다 http://json-schema.orgJSON 스키마를 정의하는 데 사용할 수있는 전체 키워드 목록은 위의 스키마는 다음 JSON 코드의 유효성을 테스트하는 데 사용할 수 있습니다.

[
   {
      "id": 2,
      "name": "An ice sculpture",
      "price": 12.50,
   },
	
   {
      "id": 3,
      "name": "A blue mouse",
      "price": 25.50,
   }
]