参照

メディア:文字列エンコーディングによる非JSONデータ

draft 7 の新機能

JSON スキーマは、JSON 文字列内に格納された非JSON データを記述し、オプションで検証するためのキーワードのセットを持っています。多くのメディアタイプに対してバリデータを作成するのは困難であるため、JSON スキーマバリデータは、これらのキーワードに基づいてJSON文字列の内容を検証する必要はありません。しかし、これらのキーワードは、検証済みのJSONを消費するアプリケーションにとって依然として役立ちます。

contentMediaType

contentMediaTypeキーワードは、RFC 2046で説明されているように、文字列の内容のMIMEタイプを指定します。IANAによって正式に登録されたMIMEタイプの一覧がありますが、サポートされるタイプのセットはアプリケーションとオペレーティングシステムによって異なります。Mozilla Developer Networkは、ウェブにとって重要なMIMEタイプの短いリストも提供しています。

contentEncoding

contentEncodingキーワードは、RFC 2054、6.1節およびRFC 4648で指定されているように、使用されるエンコーディングを指定します。

許容される値はquoted-printablebase16base32、およびbase64です。指定されていない場合、エンコーディングは包含するJSONドキュメントと同じです。

これらのエンコーディングの低レベルの詳細には立ち入らずに、現代的な使用方法で役立つのは実際には2つのオプションだけです。

  • コンテンツが包含するJSONドキュメントと同じエンコーディング(実際上はほぼ常にUTF-8)でエンコードされている場合は、contentEncodingを指定せずに、コンテンツをそのまま文字列に含めます。これには、text/htmlapplication/xmlなどのテキストベースのコンテンツタイプが含まれます。
  • コンテンツがバイナリデータの場合は、contentEncodingbase64に設定し、Base64を使用してコンテンツをエンコードします。これには、image/pngなどの多くのイメージタイプや、audio/mpegなどのオーディオタイプが含まれます。

contentSchema

draft 2019-09 の新機能

ドキュメントは近日公開

次のスキーマは、文字列が周囲のドキュメントと同じエンコーディングを使用してエンコードされたHTMLドキュメントを含んでいることを示しています。

スキーマ
{ "type": "string", "contentMediaType": "text/html"}
データ
"<!DOCTYPE html><html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head></html>"
スキーマに準拠

次のスキーマは、Base64 でエンコードされた PNG 画像を含む文字列を示しています。

スキーマ
{ "type": "string", "contentEncoding": "base64", "contentMediaType": "image/png"}
データ
"iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAA..."
スキーマに準拠

ヘルプが必要ですか?

このドキュメントは役に立ちましたか?

ドキュメントの改善にご協力ください!

JSON Schemaでは、他のあらゆる種類の貢献と同様に、ドキュメントへの貢献を重視しています!

まだヘルプが必要ですか?

JSON Schemaの学習はしばしば混乱を招きますが、ご心配なく、お手伝いさせていただきます!