On this page | |
Since | 17.5 |
このノードは、JSONファイルを読み込んで、ユーザが指定したデータを抽出します。 ユーザは、取り出されるデータに対してワークアイテムアトリビュートの名前だけでなく、そのタイプとリストインデックスも指定することができます。
Tip
$HH/help/files/pdg_examples/top_jsonpipeline
のサンプルでは、このノードを使用して、.json
ファイルからワークアイテムを生成する方法を説明しています。
TOP Attributes ¶
|
integer |
Array Retrieveオペレーションを実行した時、ここには、取得されたオブジェクトの配列内のインデックスが設定されます。 取得した値が配列内に格納されていなかった場合は0が設定されます。 |
|
integer |
Array Retrieveオペレーションを実行した時、ここにはオブジェクトのインデックスが設定されます。 これは、ワイルドカードを使った照会を実行する時に、このアトリビュートが情報の取得元であるオブジェクト識別子として作用するので便利です。 |
|
string |
Array Retrieveオペレーションを実行した時、ここには、そのオペレーションの遂行に使用されたクエリ(照会)が設定されます。 クエリ(照会)にワイルドカードを使用していた場合、そのワイルドカードは、解決された値に置換されます。 |
|
string |
Array Retrieveオペレーションを実行した時、ここには、そのオペレーション時に取得したフィールドが設定されます。 |
パラメータ ¶
Node ¶
Generate When
このノードがワークアイテムを生成するタイミングを決めます。 このノードがどの生成モードを必須にしているのか、もしくは、ワークアイテムを動的に生成させる必要があるのかどうか分からないのであれば、通常では、これを“Automatic”のままに設定してください。
All Upstream Items are Generated
このノードは、すべての入力ノードが自身のワークアイテムを生成した時にワークアイテムを生成します。
All Upstream Items are Cooked
このノードは、すべての入力ノードが自身のワークアイテムをクックした時にワークアイテムを生成します。
Each Upstream Item is Cooked
このノードは、入力ノード内のワークアイテムがクックされる度にワークアイテムを生成します。
Automatic
入力ノードの生成モードに基づいて生成モードが選択されます。 入力ノードのどれかがその入力のクック時にワークアイテムが生成されている場合、このノードには Each Upstream Item is Cooked が設定されます。 そうでない場合、 All Upstream Items are Generated が設定されます。
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 Attribute Collision
このノードの入力である上流のワークアイテム上の既存アトリビュートが.json
ファイル内のワークアイテムにも含まれている場合の挙動を決めます。
デフォルトでは、このノードは上流のワークアイテムの既存アトリビュート値を優先しますが、このパラメータを代わりに Keep JSON Attribute に変更することで、その既存アトリビュートを.json
ファイルで見つかった値で上書きされるようにすることができます。
このパラメータは、 Operation が Deserialize Work Item に設定されている場合にのみ利用可能です。
Keep Upstream Attribute
このノード上のワークアイテムが上流のアトリビュートデータを維持します。
Keep JSON Attribute
このノード上のワークアイテムがJSONアトリビュートデータを維持します。
Report Warning
このノード上のワークアイテムが上流のアトリビュートデータを維持し、さらに警告を出します。
Store Input JSON File
Operation が Deserialize Work Item に設定されている場合、このパラメータは、このノードが入力JSONファイルを、デシリアライズされたワークアイテムに格納するかどうかを決めます。
None
ワークアイテムをデシリアライズした後にJSONファイルパスが破棄されます。
File Attribute
デシリアライズされたワークアイテム上のファイルアトリビュートにJSONファイルパスが格納されます。 このアトリビュートの名前は、 Attribute Name パラメータで決定されます。
Output File
デシリアライズされたワークアイテム上の出力ファイルとしてJSONファイルパスが追加されます。
Attribute Name
Operation が Deserialize Work Item 、且つ、 Store Input JSON File が File Attribute に設定されている場合、 このパラメータは、元のJSONファイルパスを含んだアトリビュートの名前を決めます。
Preserve Deserialized Item Index
JSONファイルから読み込まれたワークアイテムがそのJSONファイル内で指定されたワークアイテムインデックスを使用するかどうかを決めます。 このトグルを無効にすると、ワークアイテムは代わりに親インデックスを使用します。
このパラメータは、 Operation が Deserialize Work Item に設定されている場合にのみ利用可能です。
On Query Failure
このパラメータは、クエリ(照会)の一部が失敗した際の処理内容を制御します。 クエリが失敗する例としては、インデックス化されている配列のサイズよりも大きいインデックスをクエリに使用した場合です。
Raise Error
このノードは、クエリが失敗するとオペレーション全体が自動的に失敗するようになります。
Add Warning
このノードは、警告を発しますが、クックを終了させるようになります。 Array Retrieveオペレーションが実行されている場合、このノードは他のクエリを完了させようと試みます。 これは、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 |