JSON 스키마 가이드

JSON 스키마

JSON 스키마에 들어가기 전에 JSON과 JSON 스키마의 차이점을 아는 것이 중요합니다.

JSON

JSON은 JavaScript Object Notation의 약자이며 API가 요청 및 응답을 보내는 데 사용하는 언어 독립적인 데이터 형식입니다. JSON은 사람과 기계 모두가 읽고 쓰기가 쉽습니다. JSON은 언어에 구속되지 않는 텍스트 기반 형식입니다(언어 독립적).

JSON 스키마

JSON 스키마는 JSON 데이터 구조를 확인하는 데 유용한 도구입니다. JSON의 구조를 지정하려면 JSON 기반 형식을 사용하십시오. 그 목적은 JSON 데이터가 허용되는지 확인하는 것입니다. 애플리케이션의 JSON 데이터에 대한 규칙은 스키마를 사용하여 정의할 수 있습니다.

JSON 스키마 사양에는 세 가지 주요 섹션이 있습니다.

JSON 하이퍼 스키마:

JSON Hyper-Schema는 HTTP와 같은 텍스트 기반 환경을 통해 외부 JSON 리소스를 처리하고 변경하기 위한 하이퍼링크 및 지침으로 JSON 문서에 레이블을 지정하는 데 사용할 수 있는 JSON 스키마 언어입니다. 딸깍 하는 소리 여기에서 지금 확인해 보세요. JSON 하이퍼 스키마에 대해 자세히 알아보세요.

JSON 스키마 코어:

JSON 문서에 레이블을 지정하고 유효성을 검사하기 위한 일련의 규칙입니다. 

JSON 스키마 코어:

  • 현재 가지고 있는 데이터 형식을 설명합니다. 
  • 자동화된 테스트에 사용할 수 있는 데이터를 검증합니다. 
  • 고객이 제공한 데이터의 정확성을 보장합니다.  
  • 인간과 기계 모두가 읽을 수 있는 문서를 제공합니다. 

JSON 스키마 검증:

JSON 스키마 기반 유효성 검사는 인스턴스 데이터 구조에 제한을 둡니다. 그 후, 어설션이 없는 모든 키워드는 정보, 설명 메타데이터 및 사용 표시와 같은 선언된 모든 제약 조건을 충족하는 인스턴스 위치에 추가됩니다. 

Newtonsoft의 JSON Schema Validator 도구는 브라우저에서 직접 무료로 사용할 수 있는 도구입니다. 이 도구를 사용하여 JSON 스키마의 구조를 테스트할 수 있습니다. 이 페이지에는 시작하는 데 필요한 컨트롤과 설명이 포함되어 있습니다. 그렇게 하면 JSON 구조를 개선하는 방법을 쉽게 알 수 있습니다.

JSON Schema Validation Tool을 사용하여 JSON 개체를 확인할 수 있습니다.

JSON 유효성 검사기 오류 없음

위 그림과 같이 연령 확인(최소 = 20 및 최대 = 40)이 있습니다. 오류가 발견되지 않았습니다.

오류가 있는 JSON 검사기

연령 확인을 잘못 입력하면 오류가 표시됩니다.

JSON 스키마 생성

JSON 스키마의 예를 살펴보고 우리가 말하는 내용을 살펴보겠습니다. 제품 카탈로그를 설명하는 기본 JSON 개체는 다음과 같습니다.

JSON 예제

JSON 스키마는 다음과 같이 작성할 수 있습니다.

JSON 스키마 결과

JSON 스키마는 JSON 문서이며 해당 문서는 객체여야 합니다. 키워드는 JSON 스키마에 의해 지정된 객체 멤버/속성입니다. JSON 스키마의 "키워드"는 개체에서 키/값 조합의 "키" 부분을 나타냅니다. JSON 스키마 작성에는 대부분 특정 "키워드"를 개체 내의 값에 매핑하는 작업이 포함됩니다. 

예제에서 사용한 키워드를 자세히 살펴보겠습니다. 

리소스의 스키마가 준수하는 JSON 스키마는 이 속성에 의해 기록됩니다. 이 스키마는 "$ schema” 키워드. 이렇게 하면 스키마가 이전 버전과 호환될 수도 있고 호환되지 않을 수도 있는 현재 버전으로 돌아가는 것을 방지할 수 있습니다.

"제목"및"설명” 키워드는 단지 설명을 위한 것일 뿐입니다. 검사 중인 데이터에 제한을 두지 않습니다. 이 두 키워드는 스키마의 목적을 설명합니다. 제품을 설명합니다.

"유형” 키워드는 JSON 데이터의 첫 번째 경계 조건을 정의합니다. JSON 개체여야 합니다. 모든 스키마에 대해 유형을 설정하지 않으면 코드가 작동하지 않습니다. 몇 가지 일반적인 유형은 "숫자" "부울" "정수" "null" "객체" "배열" "문자열"입니다.

 

JSON 스키마는 다음 라이브러리에서 지원됩니다.

 

지원하는 언어

도서관

C

WJ요소

Python

jschon

PHP

Json 스키마 설명

자바 스크립트

ajv

Go

고존스키마

코 틀린

메디아 유효성 검사기

루비

JSONSchemer

JSON(구문)

JSON의 기본 구문을 간단히 살펴보겠습니다. JSON 구문은 다음 요소를 포함하는 JavaScript 구문의 하위 집합입니다.

  • 데이터를 나타내는 이름/값 쌍이 사용됩니다.
  • 개체는 중괄호로 묶여 있으며 각 이름은 ':'(콜론)으로 시작되며 값 쌍은 ","(쉼표)로 구분됩니다.
  • 값은 ","(쉼표)로 구분되며 배열은 대괄호로 묶입니다.
JSON 구문 예

JSON은 다음 두 가지 데이터 구조를 지원합니다.

  • 정렬된 값 목록: 배열, 목록 또는 벡터일 수 있습니다.
  • 이름/값 쌍 모음: 다른 컴퓨터 언어는 이 데이터 구조를 지원합니다.

 

JSON(객체)

JSON 스키마는 다른 JSON 개체의 유형과 구조를 설명하는 JSON 개체입니다. JavaScript 개체 표현식은 JavaScript 런타임 환경에서 JSON 개체를 나타낼 수 있습니다. 유효한 스키마 개체의 몇 가지 예는 다음과 같습니다.

개요

매치

{}

모든 값

{ 유형: '객체' }

자바스크립트 객체

{ 유형: '숫자' }

자바스크립트 숫자

{ 유형: '문자열'}

자바스크립트 문자열

예 :

비어 있는 새 개체 만들기:

var JSON_Obj = {};

새 객체 생성:

var JSON_Obj = 새 객체()

JSON(XML과의 비교)

JSON 및 XML은 언어 독립적인 사람이 읽을 수 있는 형식입니다. 실제 시나리오에서는 만들고 읽고 해독할 수 있습니다. 다음 기준에 따라 JSON과 XML을 비교할 수 있습니다.

복잡성

XML은 JSON보다 복잡하기 때문에 프로그래머는 JSON을 선호합니다.

배열 사용

XML은 구조화된 데이터를 표현하는 데 사용됩니다. 그러나 XML은 배열을 지원하지 않지만 JSON은 지원합니다.

파싱

JSON은 JavaScript의 평가 기능을 사용하여 해석됩니다. eval은 JSON과 함께 사용할 때 설명된 객체를 반환합니다.

 

예:

 

JSON

XML

{

   "회사": 페라리,

   "이름": "GTS",

   "가격": 404000

}

 

 

페라리 

 

GTS 

 

404000 

 

JSON 스키마의 장점

JSON은 사람과 기계가 읽을 수 있는 언어로 편향되도록 설계되었습니다. 그러나 약간의 미세 조정 없이는 둘 다 될 수 없습니다. JSON 스키마는 기계와 인간 모두 JSON을 더 이해하기 쉽게 만드는 이점이 있습니다.

JSON 스키마를 사용하면 여러 클라이언트 측 업데이트가 필요하지 않습니다. 일반적인 HTML 코드 목록을 만든 다음 클라이언트 측에서 구현하는 것은 일반적이지만 클라이언트 측 구성에 대한 부정확한 방법입니다. API 앱. 그러나 이것은 서버 측의 변경으로 인해 특정 기능이 오작동할 수 있으므로 가장 좋은 전략은 아닙니다.

JSON 스키마의 주요 장점은 다양한 프로그래밍 언어와의 호환성과 유효성 검사의 정확성 및 일관성입니다.

JSON 스키마는 다양한 브라우저와 운영체제, 따라서 JSON으로 작성된 앱은 모든 브라우저와 호환되도록 하기 위해 많은 노력을 기울이지 않습니다. JSON에는 이미 기능이 있지만 개발 중에 개발자는 여러 브라우저를 고려합니다.

JSON은 오디오, 비디오 및 기타 미디어를 포함하여 모든 크기의 데이터를 공유하는 가장 효율적인 방법입니다. 이는 JSON이 데이터를 배열에 저장하기 때문에 데이터 전송이 더 쉬워지기 때문입니다. 결과적으로 JSON은 온라인 API 및 개발에 가장 적합한 파일 형식입니다.

API가 점점 보편화됨에 따라 API 유효성 검사 및 테스트가 점점 더 중요해질 것이라고 가정하는 것이 논리적입니다. 시간이 지남에 따라 JSON이 훨씬 더 간단해지지 않을 것이라고 예상하는 것도 현실적입니다. 이는 데이터에 대한 스키마를 갖는 것이 시간이 지남에 따라 더욱 중요해질 것임을 의미합니다. JSON은 API 작업을 위한 표준 파일 형식이기 때문에 JSON 스키마는 API 작업을 위한 좋은 대안입니다.

구글과 시크릿 신화

구글과 시크릿 신화

Google과 시크릿 모드 신화 1년 2024월 XNUMX일, Google은 시크릿 모드에서 수집된 수십억 개의 데이터 기록을 파기하여 소송을 해결하기로 합의했습니다.

자세히보기»