ブックでは、多くのソースからデータのクエリを実行できます。 Azure Resource Manager やカスタム エンドポイントなどの一部のエンドポイントは、JSON で結果を返すことができます。 クエリ対象のエンドポイントによって返される JSON データが必要でない形式である場合は、JSONPath 変換を使用して JSON をテーブル構造に変換できます。 その後、テーブルを使用して ワークブックの可視化を作成できます。
JSONPath は、XML 用の XPath に似た JSON 用のクエリ言語です。 XPath と同様に、JSONPath を使用すると、JSON 構造からデータの抽出とフィルター処理を行うことができます。
JSONPath を使用する
この例では、JSON オブジェクトは店舗の在庫を表します。 書名、著者、価格を一覧表示して、店舗の利用可能な書籍のテーブルを作成します。
[編集] を選択して、ブックを編集モードに切り替えます。
[追加>クエリの追加] リンクを使用して、ブックにクエリ コントロールを追加します。
データ ソースを JSON として選択します。
JSON エディターを使用して、次の JSON スニペットを入力します。
{ "store": { "books": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ], "bicycle": { "color": "red", "price": 19.95 } } }
[ 結果の設定] タブを選択し、結果の形式を JSON パスに切り替えます。
次の JSON パスの設定を適用します。
JSON パス テーブル:
$.store.books
。 このフィールドは、テーブルのルート パスを表します。 この場合、ストアの書籍の在庫に関心があります。 テーブル パスによって、JSON を書籍情報にフィルター処理します。列 ID 列の JSON パス タイトル $.title
著者 $.author
料金 $.price
列 ID は列ヘッダーです。 列の JSON パス フィールドは、テーブルのルートから列の値までのパスを表します。
[ クエリの実行] を選択します。
正規表現を使用して値を変換する
標準形式ではないデータがある場合があります。 そのデータを効果的に使用するために、そのデータを標準形式に変換します。
この例では、発行日は YYYMMMDD 形式です。 コードでは、この値はテキストではなく数値として解釈され、結果として日付ではなく右揃えの数値として解釈されます。
結果設定の [Type]、[ RegEx Match ]、[ Replace With ] フィールドを使用して、結果を実際の日付に変換できます。
結果設定フィールド | 説明 |
---|---|
タイプ | API によって返される値の種類を明示的に変更できます。 通常、このフィールドは未設定のままですが、このフィールドを使用して値を別の種類に強制することができます。 |
正規表現の一致 | 正規表現を入力して、値全体ではなく、API によって返される値の一部を取得できます。 通常、このフィールドは 置換対象 フィールドと組み合わされます。 |
置換後の文字列 | このフィールドを使用して、正規表現と共に新しい値を作成します。 この値が空の場合、既定値は $& です。これは式の一致結果です。 他の出力の生成に使用できるその他の値については、string.replace のドキュメントを参照してください。 |
YYYMMDD 形式を YYYY-MM-DD 形式に変換するには:
グリッドで [発行済み] 行を選択します。
[ 種類 ] フィールドで、[日付/時刻] を選択して、グラフで列を使用できるようにします。
[ 正規表現の一致 ] フィールドで、次の正規表現を使用します:
([0-9]{4})([0-9]{2})([0-9]{2})
。 この正規表現は次のとおりです。- 4 桁の数字、2 桁の数字、さらに別の 2 桁の数字と一致します。
- かっこでは、次の手順で使用するキャプチャ グループが形成されます。
[置換後の文字列] で、
$1-$2-$3
という正規表現を使用します。 この式では、キャプチャされた各グループにハイフンを含む新しい文字列が作成され、"12345678" が "1234-56-78" に変換されます。クエリを再実行します。