このトピックでは、ページレポートまたはRDLレポートをJSONデータソースに接続する方法について説明します。JSONデータソースに接続するには、[新規レポート]ダイアログ(新しいレポートを作成する場合)または[レポートデータソース]ダイアログ(レポートエクスプローラの場合)を使用できます。
jsondoc=https://demodata.mescius.jp/northwind/odata/v1/Orders
JSONデータプロバイダは、[レポートデータソース]ダイアログ内の[接続]セクションで以下のオプションをサポートしています。
[コンテンツ]タブでは、JSONデータソースの形式を指定します。指定に使用可能なオプションは次のとおりです。
[スキーマ]タブでは、JSONスキーマを指定するうえで使用可能なオプションは次のとおりです。
JSONデータプロバイダはJSONスキーマを使用してフィールドを取得します。JSONスキーマはJSONデータの構造を表します。JSONスキーマの詳細については、http://json-schema.org/latest/json-schema-core.htmlを参照してください。
JSONスキーマのキーワードは以下のとおりです。
"items" : [ {...}, {...}, {...} ]
は複数の値を含んでいるため、サポートされません。項目の詳細については、こちら(英語サイト)を参照してください。$ref
を含んでいる他のJSONスキーマ要素に使用する個別の定義を定義しています。定義の詳細については、こちら(英語サイト)を参照してください。{ $ref : #/definitions/... }
)の参照だけです。[接続文字列]タブには、[コンテンツ]と[スキーマ]タブで定義された設定に基づいてJSON接続文字列が表示されます。
jsondoc=C:\customers.json
jsondoc=https://demodata.mescius.jp/northwind/odata/v1/Orders
接続文字列 |
コードのコピー
|
---|---|
jsondata={"Customers":[{"Id":"ALFKI", "CompanyName":"Alfreds Futterkiste", "Country":"Germany"}, {"Id":"ANATR", "CompanyName":"Ana Trujillo Emparedados y helados", "Country":"Mexico"}], "ResponseStatus":{}} |
接続文字列 |
コードのコピー
|
---|---|
="jsondata={ 'Name': 'Name'};schemadata={ '$schema': 'http://json-schema.org/draft-04/schema#', 'definitions': {}, 'id': 'http://example.com/example.json', 'properties': { 'Name': { 'id': '/properties/Name', 'type': 'string' } }, 'type': 'object'}"
|
たとえば、次の接続文字列は無効です。
接続文字列(無効) |
コードのコピー
|
---|---|
="jsondata={ "Name": "Name"};schemadata={ "$schema": "http://json-schema.org/draft-04/schema#", "definitions": {}, "id": "http://example.com/example.json", "properties": { "Name": { "id": "/properties/Name", "type": "string" } }, "type": "object"}" |
[レポートデータソース - 全般]ダイアログで、[接続文字列]タブの[作成]ボタンを使用して、JSONデータソースの接続文字列を作成できます。これにより、指定されたHTTPメソッド(GET、POST)およびその他のリクエストオプションを使用して、外部URLからJSONデータを取得できます。[作成]ボタンをクリックすると、[JSONデータソースの設定]ダイアログが開かれ、URI/パス、HTTPヘッダ、HTTPメソッド(GET、POST)、POST内容のパラメータを使用してJSON接続文字列を作成できます。
JSONデータを含む外部URLに接続するには、次の設定を構成する必要があります。
URI/パス:
サービスルートURI、リソースパス、およびクエリオプションで構成されるリクエストのURLまたはエンドポイント。データソースのエンドポイントで提供されるjsonのフィールドは、データセットの設定に応じて抽出されます。たとえば、IPアドレス(例:http://10.64.2.17:51980/admin)またはマシン名(例:http://in-esxi-w10v17:8080/)を含むURLが有効です。
HTTPヘッダ
リクエストまたはレスポンスに関連する追加情報が含まれます。HTTPヘッダには、接続を確立するために必要な、予想されるコンテンツタイプを指定します。たとえば、データを取得するためにサービス/URIにログインするための資格情報を提供します。また、ヘッダと値のペアを追加できます。リクエスト本文をJSON形式で送信するために、このパラメータを設定する必要があります。
以下は、ヘッダと値のペアの例です。
Content-Type, application-json(リクエスト本文をJSON形式で送信するため)
HTTPメソッド
HTTPリクエストメソッド。GET(URLに含まれる)またはPOST(リクエスト本文に含まれる)のいずれかに設定できます。
POST内容
POSTリクエストメソッドの本文。このテキスト領域は、HTTPメソッドがPOSTに設定されている場合にのみ有効になります。POSTメソッドで接続文字列を正常に処理するには、構成設定の有効な組み合わせを指定する必要があります。URL、ヘッダの名前、ヘッダ値、およびPOST内容の有効な組み合わせが指定される場合、接続文字列を保存して検証できます。有効な組み合わせが指定された場合にのみ、データソースに基づいてデータセットを作成できます。
無効なURL、無効なヘッダ名またはヘッダ値、無効なPOST内容、またはこれらの設定の無効な組み合わせを入力すると、接続文字列の検証中にエラーメッセージが表示されます。
接続文字列 |
コードのコピー
|
---|---|
jsondoc=https://demodata.mescius.jp/northwind/api/v1/Categories
|
データセットクエリ |
コードのコピー
|
---|---|
$.[*] |
要求されたURIのデータの形式をJSONに変換するには、次の接続文字列に示すように、$formatクエリまたはHttpヘッダのいずれかを使用します。
接続文字列 |
コードのコピー
|
---|---|
jsondoc=https://services.odata.org/v3/northwind/northwind.svc/Invoices?$format=json
|
接続文字列 |
コードのコピー
|
---|---|
headers={"Accept":"application/json"};jsondoc=https://services.odata.org/v3/northwind/northwind.svc/Invoices |
データセットクエリ |
コードのコピー
|
---|---|
$.value[*] |
接続文字列 |
コードのコピー
|
---|---|
headers={"Accept":"application/json"};jsondoc=https://services.odata.org/v3/northwind/northwind.svc/Invoices?$select=ShipName,ShipRegion |
データセットクエリ |
コードのコピー
|
---|---|
$.value[*] |
接続文字列 |
コードのコピー
|
---|---|
headers={"Accept":"application/json"};jsondoc=https://services.odata.org/v3/northwind/northwind.svc/Invoices?$filter=ShipName eq 'Alfreds%20Futterkiste' |
データセットクエリ |
コードのコピー
|
---|---|
$.value[*] |