JSON スキーマのガイド
JSON スキーマに入る前に、JSON と JSON スキーマの違いを知っておくことが重要です。
JSONの
JSON は JavaScript Object Notation の略で、言語に依存しないデータ形式であり、API が要求と応答を送信するために使用します。 JSON は、人にとっても機械にとっても読み書きが簡単です。 JSON は、言語にバインドされていない (言語に依存しない) テキストベースの形式です。
JSONスキーマ
JSON スキーマは、JSON データ構造を検証するための便利なツールです。 JSON の構造を指定するには、JSON ベースの形式を使用します。 その目的は、JSON データが受け入れられるようにすることです。 アプリケーションの JSON データの規則は、スキーマを使用して定義できます。
JSON スキーマ仕様には、次の XNUMX つの主要なセクションがあります。
JSON ハイパースキーマ:
JSON ハイパースキーマは JSON スキーマ言語であり、HTTP などのテキストベースの環境を介して外部 JSON リソースを処理および変更するためのハイパーリンクと命令で JSON ドキュメントにラベルを付けるために使用できます。 クリック こちら JSON ハイパースキーマの詳細については、こちらをご覧ください。
JSON スキーマ コア:
これは、JSON ドキュメントにラベルを付けて検証するための一連のルールです。
JSON スキーマ コア:
- 現在使用しているデータ形式について説明します。
- 自動テストで使用できるデータを検証します。
- クライアントから提供されたデータの正確性を保証します。
- 人間と機械の両方にとって読みやすいドキュメントを提供します。
JSON スキーマの検証:
JSON スキーマに基づく検証は、インスタンス データの構造に制限を課します。 その後、非アサーションを持つすべてのキーワード 情報記述的なメタデータや使用表示などの は、宣言されたすべての制約を満たすインスタンス位置に追加されます。
Newtonsoft の JSON Schema Validator ツールは、ブラウザで直接無料で使用できるツールです。 このツールを使用して、JSON スキーマの構造をテストできます。 このページには、開始するためのコントロールと説明が含まれています。 そうすれば、JSON 構造を改善する方法を簡単に確認できます。
JSON Schema Validation Tool を使用して、JSON オブジェクトを確認できます。
上の図に示すように、年齢の検証 (最小 = 20、最大 = 40) があります。 エラーは見つかりませんでした。
年齢検証が正しく入力されていない場合、エラーが表示されました。
JSON スキーマの作成
JSON スキーマの例を見て、何について話しているかを見てみましょう。 製品カタログを記述する基本的な JSON オブジェクトは次のとおりです。
その JSON スキーマは、次のように記述できます。
JSON スキーマは JSON ドキュメントであり、そのドキュメントはオブジェクトでなければなりません。 キーワードは、JSON スキーマで指定されたオブジェクト メンバー/属性です。 JSON スキーマの「キーワード」は、オブジェクトのキーと値の組み合わせの「キー」部分を指します。 JSON スキーマを記述するには、ほとんどの場合、特定の「キーワード」をオブジェクト内の値にマッピングする必要があります。
この例で使用したキーワードを詳しく見てみましょう。
リソースのスキーマが準拠する JSON スキーマは、この属性によって書き留められます。 このスキーマは、「$ schema」キーワード。 これにより、スキーマが古いバージョンと互換性がある場合とない場合がある現在のバージョンにフォールバックするのを防ぎます。
「タイトル"と"説明」 キーワードは単なる説明です。 チェックされるデータに制限を課すことはありません。 これらの XNUMX つのキーワードは、スキーマの目的を説明します。つまり、製品を説明します。
「type” キーワードは、JSON データの最初の境界条件を定義します。 JSON オブジェクトでなければなりません。 すべてのスキーマにタイプを設定しないと、コードは機能しません。 一般的なタイプには、「数値」「ブール値」「整数」「null」「オブジェクト」「配列」「文字列」などがあります。
JSON スキーマは、次のライブラリでサポートされています。
言語設定 | 図書館 |
C | WJエレメント |
Python | ジョン |
PHP | 説明 Json スキーマ |
JavaScriptを | アジュブ |
Go | gojsonスキーマ |
コトリン | メディアバリデーター |
ルビー | JSONスキーマー |
JSON (構文)
JSON の基本的な構文を簡単に見てみましょう。 JSON 構文は、次の要素を含む JavaScript 構文のサブセットです。
- データを表す名前と値のペアが使用されます。
- オブジェクトは中かっこで囲まれ、各名前は「:」(コロン) で始まり、値のペアは「,」(コンマ) で区切られます。
- 値は「,」(コンマ) で区切られ、配列は角括弧で保持されます。
JSON では、次の XNUMX つのデータ構造がサポートされています。
- 値の順序付きリスト: 配列、リスト、またはベクトルを指定できます。
- 名前と値のペアのコレクション: さまざまなコンピューター言語がこのデータ構造をサポートしています。
JSON (オブジェクト)
JSON スキーマは、異なる JSON オブジェクトの型と構造の概要を示す JSON オブジェクトです。 JavaScript オブジェクト式は、JavaScript ランタイム環境で JSON オブジェクトを表すことができます。 有効なスキーマ オブジェクトの例を次に示します。
スキーマ | マッチ |
{} | 任意の値 |
{ タイプ: 'オブジェクト' } | JavaScript オブジェクト |
{ タイプ: '数値' } | JavaScript 番号 |
{ タイプ: '文字列'} | JavaScript 文字列 |
例えば:
空の新しいオブジェクトを作成する:
var JSON_Obj = {};
新しいオブジェクトの作成:
var JSON_Obj = 新しいオブジェクト()
JSON (XML との比較)
JSON と XML は、言語に依存しない人間が判読できる形式です。 実際のシナリオでは、作成、読み取り、およびデコードの両方を行うことができます。 次の基準に基づいて、JSON と XML を比較できます。
複雑
XML は JSON よりも複雑であるため、プログラマーは JSON を好みます。
配列の使用
XML は構造化データの表現に使用されます。 ただし、XML は配列をサポートしていませんが、JSON はサポートしています。
解析
JSON は JavaScript の eval 関数を使用して解釈されます。 JSON で使用すると、eval は記述されたオブジェクトを返します。
例:
JSONの | XML |
{ 「会社」:フェラーリ、 「名前」:「GTS」、 「価格」: 404000 } |
フェラーリ
GTS
404000
|
JSON スキーマの利点
JSON は、人間と機械が読み取り可能な言語で偏向するように設計されています。 ただし、微調整がなければ、どちらにもなりません。 JSON スキーマには、マシンと人間の両方にとって JSON をより理解しやすくするという利点があります。
また、JSON スキーマを使用すると、クライアント側でいくつかの更新を行う必要がなくなります。 一般的な HTML コードのリストを作成してクライアント側に実装することは、クライアント側を構築するための典型的ですが不正確な方法です。 API アプリ。 ただし、サーバー側の変更によって特定の機能が誤動作する可能性があるため、これは最善の戦略ではありません。
JSON スキーマの主な利点は、さまざまなプログラミング言語との互換性と、検証の正確さと一貫性です。
JSON スキーマは幅広いブラウザをサポートし、 OSしたがって、JSON で記述されたアプリは、すべてのブラウザーと互換性を持たせるために多くの労力を必要としません。 JSON には既に機能がありますが、開発中、開発者はいくつかのブラウザーを検討します。
JSON は、オーディオ、ビデオ、およびその他のメディアを含む、あらゆるサイズのデータを共有するための最も効率的な方法です。 これは、JSON がデータを配列に格納するため、データ転送が容易になるためです。 その結果、JSON はオンライン API と開発に最適なファイル形式です。
API がより一般的になるにつれて、API の検証とテストがますます重要になると想定するのは論理的です。 また、時間が経っても JSON がそれほど単純になる可能性は低いと予想するのも現実的です。 これは、データのスキーマを持つことが、時間が経つにつれてますます重要になることを意味します。 JSON は API を操作するための標準的なファイル形式であるため、JSON スキーマは API を操作するための優れた代替ファイルです。