JSON ファイルのインポート例
これらの例は、さまざまなタイプの JSON データと各行に必要なパスをインポートする方法を示しています。インポートする JSON ファイルは、次のガイドラインに従う必要があります。
ファイルタイプデータソースを作成する段階的な手順については、「ファイルタイプのデータソースを作成する」を参照してください。
- JSON アレイの場合、各行のパスで
/incidents/incidentsのようにアレイのルート要素を 2 回指定する必要があります。 - JSON ファイルは RFC-4627 に従う必要があります。たとえば、値と続く名前は 1 つのカンマで区切る必要があります。オブジェクト内の名前は一意である必要があります。
@element、[index]、またはtext()などの述語や、子、兄弟、先祖などの Axis はサポートされていません。
簡易アレイ
- 各行のパス:
/incidents/incidents - 結果:2 レコード
/incidents が 2 回含まれています。これはアレイをインポートするときに必要です。{
"source":"HI",
"incidents":[
{
"number":"INC0000001",
"short_description":"Can't read email"
},
{
"number":"INC0000002",
"short_description":"Error loading XML file"
}
]
}
第 2 レベルのアレイ
- 各行のパス:
/problems/data/data - 結果:3 レコード
/data が 2 回含まれています。{
"problems":{
"id":"0",
"data":[
{
"number":"PRBTEST001",
"short_description":"testsd1"
},
{
"number":"PRBTEST002",
"short_description":"testsd2"
},
{
"number":"PRBTEST003",
"short_description":"testsd3"
}
]
}
}
ネストされたアレイ
- 各行のパス:
/problems/problems/data/data - 結果:3 レコード
/problems と /data が 2 回含まれています。{
"problems": [
{
"id":0,
"data":[
{
"number":"PRBTEST001",
"short_description":"testsd1"
},
{
"number":"PRBTEST002",
"short_description":"testsd2"
},
{
"number":"PRBTEST003",
"short_description":"testsd3"
}
]
}
]
}
子 (ネストされた) アレイのサポート
デフォルトでは、インポートは子 (ネストされた) アレイをサポートしていません。サポートを有効にするには、データソースビューの [配列を破棄] チェックボックスをオフにします。次の表では、子アレイのサポートを有効または無効にしたときのさまざまな動作について説明します。
{
"response":{
"docs":[
{
"id":"id_val",
"childrenArray":[1,2,3],
"anotherArray":[{"key1":"value1"}, {"key1": "value2"}],
"elementWithArray":{"childrenArray":[1,2,3]}
}
]
}
}
| パス | アレイの破棄が有効 | アレイの破棄が無効 |
|---|---|---|
| /response/docs/docs | 次の列と値を持つレコードを 1 つ作成します。
|
次の列と値を持つレコードを 1 つ作成します。
|
| /response/docs/docs/anotherArray/anotherArray | それぞれが 1 つの列 key1 を持つ 2 つのレコードを作成します。 | それぞれが 1 つの列 key1 を持つ 2 つのレコードを作成します。 |
| /response/docs/docs/childrenArray/childrenArray | アレイ内の値が key-value 構造になっていないため、機能せず、[パスは常に JSON オブジェクトを参照する必要があります (Path should always refer JSON Objects)] というエラーが返されます。 | アレイ内の値が key-value 構造になっていないため、機能せず、[パスは常に JSON オブジェクトを参照する必要があります (Path should always refer JSON Objects)] というエラーが返されます。 |
孤立アレイ
- 各行のパス:
// - 結果:2 レコード
[
{
"number":"PRBTEST001",
"short_description":"testsd1"
},
{
"number":"PRBTEST002",
"short_description":"testsd2"
}
]
アレイではなく複数の要素
- 各行のパス:
/problems/problem - 結果:3 レコード
重要:
この形式はお勧めしません。JSON ファイルは、オブジェクト内の名前は一意でなければならないと規定する RFC-4627 に従う必要があります。代わりに JSON アレイを使用してください。
{
"problems":{
"title":"2 problems",
"problem":{
"number":"PRBTEST001",
"short_description":"testsd1"
},
"problem":{
"number":"PRBTEST002",
"short_description":"testsd2"
}
},
"problems":{
"title":"1 problem",
"problem":{
"number":"PRBTEST005",
"short_description":"testsd5"
}
}
}