5 「JSON」ページ

ノート:

Oracle Databaseリリース19c以降のリリースで、SODA_APPロールを持つデータベース・ユーザーとしてサインインしている場合にのみ使用できます。
Database Actionsの「JSON」ページを使用して、JSONコレクションの表示と管理、例による問合せ(QBE)を使用したコレクション項目の検索、JSON検索索引の作成およびコレクションのデータ・ガイド・ダイアグラムの表示を行います。

「JSON」ページにナビゲートするには、次のいずれかを実行します。

  • 「起動パッド」ページで、「JSON」をクリックします。

  • セレクタ セレクタ・アイコン をクリックして、ナビゲーション・メニューを表示します。「開発」で、「JSON」を選択します。

JSONユーザー・インタフェースについて

JSONユーザー・インタフェースは、保存済コレクションをリストおよび検索するための左ペインと、コレクション内のドキュメントを表示および管理するための右ペインで構成されます。

JSONコレクションのリストおよび検索

次の図に、JSONページの左ペインの主な項目を示します。

ドロップダウン・リストで適切なオプションを選択して、保存済JSONコレクションまたは最近アクセスしたJSONコレクションを表示します。

検索機能では大/小文字が区別されず、一致するエントリがすべて取得され、ワイルドカード文字を使用する必要はありません。

コレクションの作成アイコンをクリックして、新しいコレクションを作成します。コレクションの作成を参照してください

コレクション名を右クリックしてコンテキスト・メニューを開きます。使用可能なオプションは次のとおりです。

  • 検索索引: コレクションのJSON検索索引を作成します。作成した検索索引を削除することもできます。コレクションのJSON検索索引の管理を参照してください

  • 削除: コレクションをデータベースから完全に削除します。

コレクションの内容の表示

左ペインで特定のコレクションを選択すると、そのコレクションに属するJSONドキュメントが右ペインの下部に表示されます。右側のペインの上部には、ドキュメントをフィルタまたはソートするための問合せを実行できるJSONエディタがあります。

右隅には次の2つのアイコンがあります。

  • ツアー 「ツアー」アイコン: 使用可能な機能に関する情報を提供するJSONツアーを開始します。

  • SQLに移動 SQLページ・アイコン: 「SQL」ページに移動します。

ツールバーのアイコンは次のとおりです。

  • 新規JSONドキュメント「新規ドキュメント」アイコン: 新規ドキュメントをコレクションに追加します。JSONドキュメントの追加または編集についてを参照してください

  • ドキュメントのインポート 「ドキュメントのインポート」アイコン: ローカル・コンピュータからコレクションに既存の1つ以上のJSONファイルをインポートします。

  • リストのすべてのドキュメントを削除 「ドキュメントの削除」アイコン: 現在のQBE検索文字列に一致するコレクション内のすべてのJSONドキュメントを削除します。現在の文字列が{}の場合、コレクション内のすべてのドキュメントが削除されます。

  • 収集の詳細「収集の詳細」アイコン: コレクションのプロパティを表示します。フィールドの説明は、コレクションの作成を参照してください。

  • ダイアグラム「ダイアグラム」アイコン: JSONデータ・ガイドを階層形式のダイアグラムとして表示します。コレクションのJSONデータ・ガイド・ダイアグラムの表示を参照してください

  • 問合せの実行「問合せの実行」アイコン: JSONエディタで入力したQBE条件を使用してドキュメントをフィルタします。コレクション内のドキュメントの問合せについてを参照してください

各JSONドキュメントには次のアイコンがあります。

  • ドキュメントの編集 ドキュメントの編集アイコン: JSONドキュメントを編集します。JSONドキュメントの追加または編集についてを参照してください

  • ドキュメントのクローン ドキュメントのクローン・アイコン: ドキュメントのクローンを作成します。

  • ドキュメントのコピー 「ドキュメントのコピー」アイコン: ドキュメントをクリップボードにコピーします。

  • ドキュメントのエクスポート 「ドキュメントのエクスポート」アイコン: ドキュメントを.JSONファイルとしてダウンロードします。

  • ドキュメントの削除 「ドキュメントの削除」アイコン: ドキュメントを削除します。

JSONコレクションの管理

コレクションを追加、表示または削除したり、コレクション内のJSONドキュメントを参照、追加、編集および削除できます。

  • コレクションの作成: コレクションの作成を参照してください

  • コレクション内のドキュメントの追加または編集: JSONドキュメントの追加または編集についてを参照してください

  • コレクション内のドキュメントの表示: 左ペインでコレクション名を選択します。コレクション内のドキュメントが右ペインに表示されます。

  • コレクション詳細の表示: 左ペインで特定のコレクションを選択し、右ペインのツールバーで「収集の詳細」「収集の詳細」アイコンをクリックして、コレクション・プロパティを表示します。

  • コレクションの削除: 左ペインでコレクション名を右クリックしてコンテキスト・メニューを開きます。「削除」を選択して、データベースからコレクションを完全に削除します。

コレクションの作成

この項では、コレクションの作成方法について説明します。

  1. JSONページに移動すると、次のようになります。
    • 作成されたコレクションがない場合は、JSONホーム・ページが表示されます。コレクションの作成をクリックします。

    • 使用可能な既存のコレクションがある場合は、左側のペインでコレクションの作成 「新規コレクション」アイコンをクリックします。

  2. コレクション名を入力して、「作成」をクリックします。各フィールドの簡単な説明を次に示します。

    コレクション名: コレクションの名前を入力します。コレクション名では大文字/小文字が区別されることに注意してください。

    これは、コレクションを作成するための唯一の必須フィールドです。他のフィールドに入力しない場合は、デフォルト値が適用されます。

    一般

    • 検索索引: コレクションのJSON検索索引を作成するための名前を入力します。

    • スキーマ: コレクションがマップされる表またはビューを所有するOracle Databaseスキーマの名前。

    • : コレクションがマップされる表またはビューの名前。

    キー列

    • 列名: ドキュメント・キーを格納する列の名前。デフォルト値はIDです。

    • データ型: ドキュメント・キーを格納する列のSQLデータ型。

    • 最大長: バイト単位の列の最大長(VARCHAR2型の場合のみ)。

    • 割当てメソッド: コレクションに挿入するオブジェクトにキーを割り当てるために使用するメソッド。メソッドをSEQUENCEとして指定する場合、その順序名も指定する必要があります。

    コンテンツ列

    • 列名: ドキュメントのコンテンツを格納する列の名前。デフォルト値はJSON_DOCUMENTです。

    • データ型: ドキュメントのコンテンツを格納する列のSQLデータ型。

    • 最大長: バイト単位のコンテンツ列の最大長(VARCHAR2型の場合のみ)。

    • JSON検証: JSONコンテンツが準拠する必要がある構文(「標準」、「厳密」または緩和)。

    • LOB圧縮: SecureFiles LOBの圧縮設定を指定します。

    • LOBキャッシュ: SecureFiles LOBのキャッシュ設定を指定します。

    • LOB暗号化: SecureFiles LOBの暗号化設定を指定します。

    • バージョン列: ドキュメント・バージョンを格納する列の名前。

    • 生成メソッド: オブジェクトがコレクションに挿入または置換されるときに、オブジェクトのバージョン値を計算するために使用されるメソッド。

    • メディア・タイプ列: ドキュメントのメディア・タイプを格納する列の名前。

    • 作成時間列: ドキュメントの作成時のタイムスタンプを格納する列の名前。

    • 最終変更列: ドキュメントの最終変更時のタイムスタンプを格納する列の名前。

    • 索引: 最終変更列の索引の名前。名前が指定されている場合、インデックスが作成されます。

    出力JSON: コレクション属性の値を選択または入力すると、リクエスト本文のJSONペイロードが自動的に表示されます。このテキストは読取り専用です。

  3. コレクションを作成する場合は、「作成」をクリックします。

    コレクションを取り消す場合は、「取消」をクリックするか、[Esc]キーを押します。

JSONドキュメントの追加または編集について

JSONエディタを使用して、JSONドキュメントを追加および編集できます。

ドキュメントを追加するには、特定のコレクションの右ペインのツールバーにある「新規JSONドキュメント」「新規JSONドキュメント」アイコンをクリックします。JSONエディタで、JSONドキュメントをコピーして貼り付けるか、「インポート」アイコンを使用してJSONドキュメントをインポートできます。

ドキュメントを編集するには、ドキュメント・カードのドキュメントの編集 ドキュメントの編集アイコンをクリックします。

次の図に、JSONエディタで開いているドキュメントを示します。

コレクション内のドキュメントの問合せについて

フィルタ仕様または例による問合せ(QBE)を使用して、コレクション内の1つ以上のドキュメントを検索できます。

QBEは、JSONで表されるパターンです。コレクションから、コンテンツが一致するJSONドキュメントを選択するために使用します。つまり、パターンで表される条件が、それらのドキュメントのみのコンテンツに対してtrueと評価される場合です。QBEおよびその使用方法の詳細は、Oracle Database Simple Oracle Document Access (SODA)の概要のSODA QBEの概要を参照してください。

特定のコレクションの場合は、JSONエディタでQBE文字列を入力します。たとえば、名前がMaryのドキュメントを選択するには、図5-1に示すように、{"name":"Mary"}と入力し、「問合せの実行」をクリックします。右下のペインに問合せの結果が表示されます。

エディタには、コマンド・パレットから使用できるコマンドの包括的なリストが用意されています。コマンド・パレットを開くには、[Ctrl]+[Shift]+[P]を押します。キーボード・ショートカット・キーのリストは、キーボード・ショートカットを参照してください。

問合せのエラーは、左余白の赤い点と、特定のテキストの下にある四角形の線で示されます。カーソルを置くと、エラーを解決するための可能な修正がポップアップで表示されます。

ヘッダーの右上のユーザー・ドロップダウン・リストの「プリファレンス」オプションを使用して、エディタ・プリファレンスを設定できます。使用可能なオプションには、テーマ(明るい、暗い、高コントラストの暗い)、フォント・サイズおよびファミリ、タブ・サイズ、ワードラップ、ルーラー、行番号などがあります。

エディタの上には次のアイコンがあります。

  • JSONデータのフォーマットjsonのフォーマット・アイコン: QBE文字列のインデントおよび改行を有効にします。

  • 句の追加: QBE文字列に$orderbyまたは$patch句の書式設定されたテンプレートを追加します。

  • クリア 「クリア」アイコン: 現行のQBE文字列をクリアします。

  • 履歴 「履歴」アイコン: 前のQBE検索文字列を取得します。

図5-1 JSONエディタのQBE文字列

図5-1の説明が続きます
「図5-1 JSONエディタのQBE文字列」の説明

QBE式は有効なJSONオブジェクトである必要があり、$queryおよび$orderbyまたは$patch句を含めることができます。QBE式は、句が定義されていない場合、$query句として扱われます。$query句で開始し、後で句の追加リストを使用して$orderbyまたは$patch句を追加します。コンテンツが変換され、$orderbyおよび$patch句のテンプレートが提供されます。テンプレートに正しい値を設定する必要があります。JSONエディタでのコンテキスト内オートコンプリート機能の使用を参照してください。

たとえば、次のような単純なフィルタ問合せがあります。

plain_query.pngの説明が続きます
図plain_query.pngの説明

「句の追加」を使用して$orderby句を追加すると、次のエントリが表示されます。

orderby_clause.pngの説明が続きます
図orderby_clause.pngの説明

$patch句を追加すると、問合せは次のように変更されます。

patch_clause.pngの説明が続きます
図patch_clause.pngの説明

JSONエディタでのコンテキスト内オートコンプリート機能の使用

[Ctrl]+[Space]を押すと、エディタにコンテキスト対応のオプションのリストが表示されます。このリストから、挿入ポイントでオプションを選択して自動補完できます。

json_code_completion.pngの説明が続きます
図json_code_completion.pngの説明

次のタイプの情報がリストに表示されます。

  • 比較句のフィルタ

    テンプレートは各条項に使用可能で、カーソル位置に挿入されます。たとえば、オートコンプリート・リストから$between句を選択すると、エディタに次のエントリが表示されます。

    filter_clause.pngの説明が続きます
    図filter_clause.pngの説明

    ここで、ageはプロパティ名、49および70は値です。これらは編集可能なパラメータで、強調表示されています。プロパティ名は、入力するか、オートコンプリートのヘルプを使用して編集できます。[Tab]キーを押して、次のパラメータに移動します。

  • コレクション内のJSONドキュメントのプロパティ名

    JSONドキュメントのプロパティ名には、次の2つのソースがあります。

    • データ・ガイドをサポートする検索索引が作成されている場合は、データベース・ディクショナリのJSONデータ・ガイドでプロパティ名がスキャンされます。

    • 表示または編集されたドキュメントから収集されたプロパティ名が表示されます。プロパティ名はネームスペース全体のサブセットである可能性があります。

    プロパティのタイプに基づいて、関連するテンプレートが挿入され、カーソルが挿入対象の場所に置かれます。次に、プロパティ・タイプ、そのテンプレートおよびそれぞれに対応するカーソル位置のリストを示します。

    • Object

      "ShippingInstructions.Address": {
      <cursor_here>
      }
    • Array

      "LineItems": [<cursor_here>]
    • String
      "LineItems[*].Part.Description": "<cursor_here>]"
    • Number
      "PONumber": 0
    • Boolean
      "site_admin": true

    カーソルが二重引用符("")で囲まれていて、オートコンプリートがアクティブ化されている場合、テンプレートまたは追加の二重引用符なしでプロパティ名のみが挿入されます。

コレクションのJSON検索索引の管理

コレクションのJSON検索索引を作成または削除できます。

JSON検索索引の作成

  1. 左ペインで、特定のコレクションを右クリックして「検索索引」を選択し、「作成」を選択します。

  2. 検索索引の名前を入力し、「OK」をクリックします。

    検索索引名は、コレクションの詳細を表示すると表示されます。

検索索引の削除

  1. 左ペインで、特定のコレクションを右クリックして「検索索引」を選択し、「削除」を選択します。

    確認を求めるプロンプトが表示されます。

  2. 「OK」をクリックして削除します。

コレクションのJSONデータ・ガイド・ダイアグラムの表示

ダイアグラム・ビューには、コレクションのJSONデータ・ガイドが、エンティティ関係ダイアグラムと同様の形式を使用する階層構造として表示されます。

JSONデータ・ガイドは、JSONコンテンツを含む列を持つドキュメントのJSONスキーマを表します。

ダイアグラムで、配列は1対多の関係として表され、この配列に、1対1の関係としてオブジェクトが含まれ、可能な選択肢を囲むボックスとしてoneOf構造が含まれます。

右ペインのツールバーで「ダイアグラム」「ダイアグラム」アイコンをクリックして、特定のコレクションのJSONデータ・ガイド・ダイアグラムを表示します。

ツールバーのアイコンは、「ダイアグラムの印刷」、SVG形式で保存、「ズームイン」、「ズームアウト」、「画面に合わせる」および「実際のサイズ」です。