On this page |
このノードは、JSONファイルを読み込んで、ユーザが指定したデータを抽出します。 ユーザは、取り出されるデータに対してワークアイテムアトリビュートの名前だけでなく、そのタイプとリストインデックスも指定することができます。
TOP Attributes
|
integer |
Array Retrieveオペレーションを実行した時、ここには、取得されたオブジェクトの配列内のインデックスが設定されます。 取得した値が配列内に格納されていなかった場合は0が設定されます。 |
|
integer |
Array Retrieveオペレーションを実行した時、ここにはオブジェクトのインデックスが設定されます。 これは、ワイルドカードを使った照会を実行する時に、このアトリビュートが情報の取得元であるオブジェクト識別子として作用するので便利です。 |
|
string |
Array Retrieveオペレーションを実行した時、ここには、そのオペレーションの遂行に使用されたクエリ(照会)が設定されます。 クエリ(照会)にワイルドカードを使用していた場合、そのワイルドカードは、解決された値に置換されます。 |
|
string |
Array Retrieveオペレーションを実行した時、ここには、そのオペレーション時に取得したフィールドが設定されます。 |
パラメータ
Node
Work Item Generation
このノードが静的または動的なワークアイテムのどちらを生成するかどうか。 このノードのワークアイテムが静的に計算可能かどうか、もしくは、動的に生成させる必要があるかどうか分からないのであれば、通常では、これを"Automatic"のままに設定してください。
Dynamic
このノードが常に動的なワークアイテムを生成します。つまり、上流のワークアイテムが判明するまで待機し、その上流のワークアイテムから新しいワークアイテムを生成します。
Static
このノードが常に静的なワークアイテムを生成します。つまり、ネットワークを実行する前にパラメータ(と上流の静的なワークアイテム)に基づいて必要だと思われるだけの数のワークアイテムを生成します。
Automatic
入力が静的(静的なプロセッサ、静的な入力のみを使ったパーティショナー、マッパー)な場合、このノードは静的なワークアイテムを生成し、そうでない場合、動的なワークアイテムを生成します。
Source
JSON File
JSONファイルのソース。
Upstream Output File
上流ワークアイテムで生成された出力ファイルをJSONファイルのパスとして使用します。
Custom File Path
ファイルパスでJSONファイルを指定します。
File Tag
上流ワークアイテムから結果を選択する際に使用するデータタグ。
File Path
JSONファイルのパス。
Operation
Operation
ここには、実行したい取得オペレーションを指定します。
Retrieveこのオペレーションは、JSONファイルから単一データの抽出を行なうことができます。 例えば、このオペレーションを使用して、オブジェクト内の特定の値またはリスト内の特定のインデックスにおける値を照会することができます。 Data Extractionsマルチパラメータには、JSONに対して実行させたいデータ抽出を指定します。
Array Retrieveこのオペレーションは、JSONファイル内のリストの各インデックスから、指定したフィールドを抽出することができます。
Deserialize Work Itemこのオペレーションは、指定したJSONファイルからワークアイテムをデシリアライズします。 そのJSONファイルは、例えばJson Outputから生成されるファイルのように、シリアライズ化されたワークアイテムファイルとしてフォーマットされている必要があります。
On Query Failure
このパラメータは、クエリ(照会)の一部が失敗した際の処理内容を制御します。 クエリが失敗する例としては、インデックス化されている配列のサイズよりも大きいインデックスをクエリに使用した場合です。
このノードが Raise Error モードに設定されていれば、クエリが失敗するとオペレーション全体が自動的に失敗するようになります。
このノードが Add Warning モードに設定されていれば、警告が発せられますが、クックを終了させるようになります。 Array Retrieveオペレーションが実行されている場合、このノードは他のクエリを完了させようと試みます。
Add Warning モードは、JSONファイルに不均一データが含まれている場合に役立ちます。 例えば、オブジェクトの配列に特定のサブオブジェクトが含まれたり、含まれなかったりする場合です。
Data Extractions
このマルチパラメータ内のパラメータを使用することで、Retrieveオペレーションを使用した際に実行させたいデータ抽出を指定することができます。
Query
このパラメータは、JSONオブジェクトのパスまたは抽出したい値を指定する際に使用されます。 ここに"/"文字で区切った階層構文を使用することで、そのパスを指定することができます。 その階層内にリストがあれば、数値を使って配列インデックスを指定することができます。
例えば、以下のJSONファイルがあったと仮定します:
{
"plants" :
[
{ "name" : "tree", "inMyGarden" : true, "height" : 5.5 },
{ "name" : "sunflower", "inMyGarden": false, "height" : 3 }
]
}
そして、1番目の植物の高さを取得したい場合は、その照会は以下のように指定します:
plants/0/height
2番目の植物の名前を取得したい場合は、その照会は以下のように指定します:
plants/1/name
Array Retrieveオペレーションを実行する時は、その照会には必ずJSON内のリストを指定してください。 以下で説明するように1つ例外があります。
Array Retrieveオペレーションには、その照会にワイルドカード(*
)を使用することができます。
このワイルドカードによって、JSON階層が分岐で走査され、そのレベルにおける各オブジェクトがJSON走査の分岐になります。
以下のようなJSONファイルがあったと仮定します:
{
"Houdini" : {
"Contexts" : {
"Sop" : {
"mountain" : {
"name" : "Mountain"
},
"polybevel" : {
"name" : "PolyBevel"
}
},
"Top" : {
"jsoninput" : {
"name" : "Json Input"
},
"jsonoutput" : {
"name" : "Json Output"
}
}
}
}
}
そして、このJSONファイル内のすべてのノードの名前を取得したいので、以下の照会を実行したとします:
Houdini/Contexts/* /*
そして、Fieldパラメータをnameに設定します。
これによって、4個の別々のワークアイテムが生成され、各ワークアイテムにはノード名が含まれます。 これらのオブジェクトすべてが独立していて、同じ配列に属しているわけではないので、それぞれのjson_arrayindexは0に設定されます。
Field
このパラメータは、Array Retrieveオペレーションを実行した時にのみ使用されます。 これは、Queryで指定されたリストの各配列インデックスから取得されるプロパティを指定する際に使用されます。
Queryで指示された配列が匿名オブジェクト(例えば、整数の配列)で充たされていた場合、
このパラメータには、単に配列内のすべてを取得することを意味するワイルドカード(*
)を設定することができます。
Attribute Name
ここには、抽出した値を格納するワークアイテムアトリビュートの名前を指定します。
Store As
ここには、照会されたJSONデータの保存に使用するPDGアトリビュートのタイプを指定します。 特定のPDGアトリビュートタイプが選択されていて、且つ、そのJSONデータタイプと一致しなかった場合、結果はエラーになります。 Automatic オプションを選択すると、JSONオブジェクトがPyObjectsとして保存されます。
Automatic
使用するPDGアトリビュートのタイプが自動的にJSONデータのタイプから決定されます。
String
データが文字列アトリビュートとして保存されます。
Integer
データが整数アトリビュートとして保存されます。
Float
データが浮動小数点アトリビュートとして保存されます。
PyObject
データがPyObjectアトリビュートとして保存されます。
String Array
データのリストが文字列アトリビュートに保存されます。
Integer Array
データのリストが整数アトリビュートに保存されます。
Float Array
データのリストが浮動小数点アトリビュートに保存されます。
Unpacked Attributes
このオプションは、JSONオブジェクトを個々のアトリビュートに展開します。
PDG Value Index
ここには、抽出した値を格納するワークアイテムアトリビュートのリストのインデックスを指定します。
Examples
example_top_jsoninput Example for Json Input TOP node
このサンプルでは、Json Inputノードを使って、JSONファイルに含まれている情報に基づいてワークアイテムを生成する方法について説明しています。
See also |