ダイナミック・エンティティ・メソッドのクイック・リファレンス
このセクションでは、使用可能な各ダイナミック・エンティティ・メソッドの概要とリファレンス情報を記載しています。ダイナミック・エンティティは、%Library.DynamicObjectOpens in a new tab または %Library.DynamicArrayOpens in a new tab のインスタンスです。これらのクラスは両方とも %Library.DynamicAbstractObjectOpens in a new tab を継承します。この章の各リストには、適切なオンラインのクラス・リファレンス・ドキュメントへのリンクが含まれています。
メソッドの詳細
このセクションでは、すべての使用可能なダイナミック・エンティティ・メソッドを列挙して、各メソッドについて簡単に説明して、詳細情報へのリンクを提供します。すべてのメソッドはオブジェクトと配列の両方に使用できますが、例外として、%Push() と %Pop() は配列専用です。
指定された有効な JSON 文字列を解析して、解析された JSON が格納されたデータ型 %DynamicAbstractObjectOpens in a new tab のオブジェクトを返します。解析時にエラーが発生した場合は、例外がスローされます。詳細と例は、“ダイナミック・エンティティと JSON の間の変換” を参照してください。
classmethod %FromJSON(str) as %DynamicAbstractObject
パラメータ :
-
str — 入力は、以下に示すソースのいずれか 1 つにできます。
-
ソースが含まれた文字列値。値には空の文字列を使用できますが ("")、文字列に空白文字のみが含まれる場合、エラーがスローされます。
-
ソースの読み取り元となるストリーム・オブジェクト。ストリームに文字が含まれない場合、エラーがスローされます。
-
関連項目 : "%FromJSONFile()"、"%ToJSON()"、"大きいダイナミック・エンティティからストリームへのシリアル化"
クラス・リファレンス : %DynamicAbstractObject.%FromJSON()Opens in a new tab
指定された有効な JSON ソースを解析して、解析された JSON が格納されたデータ型 %DynamicAbstractObjectOpens in a new tab のオブジェクトを返します。詳細と例は、“ダイナミック・エンティティと JSON の間の変換” を参照してください。
classmethod %FromJSONFile(filename) as %DynamicAbstractObject
パラメータ :
-
filename — ソースを読み取ることができるファイル URI の名前。このファイルは UTF-8 形式でエンコードされている必要があります。ファイルに文字が含まれない場合、例外がスローされます。
関連項目 : "%FromJSON()"、"%ToJSON()"、"大きいダイナミック・エンティティからストリームへのシリアル化"
クラス・リファレンス : %DynamicAbstractObject.%FromJSON()Opens in a new tab
指定された有効なオブジェクト・キーまたは配列インデックスを受け取って、対応する値を返します。その値が存在しない場合は、NULL 文字列の "" が返されます。詳細と例は、“%Set()、%Get()、および %Remove() の使用” を参照してください。
method %Get(key, default, type) as %RawString
パラメータ :
-
key — 取得する値のオブジェクト・キーまたは配列インデックス。配列インデックスはキャノニック形式の整数値として渡される必要があります。配列インデックスの先頭位置は 0 です。
-
default — 選択された配列要素が未定義の場合に返されるオプションの値。指定しない場合、既定の空文字列になります。
-
type — 定義すると、指定された型として key の値を返す必要があることを示します (値の変換方法の詳細は、"%DynamicObject.%Get()Opens in a new tab" と "%DynamicArray.%Get()Opens in a new tab" を参照)。この引数が指定されている場合、値は次のいずれかの文字列である必要があります。
-
"" (空の文字列) — 変換せずに %Get(key) を呼び出すのと同じです
-
"string" — テキスト文字列に変換します
-
"string>base64" — テキスト文字列に変換して base64 にエンコードします
-
"string<base64" — テキスト文字列に変換して base64 からデコードします
-
"stream" — 文字列変換を %Stream に配置します
-
"stream>base64" — %Stream から base64 にエンコードされた文字列
-
"stream<base64" — base64 から %Stream にデコードされた文字列
-
"json" — JSON 表現に変換します
-
関連項目 : %Set()、%Remove()、 %Pop()
クラス・リファレンス : %DynamicObject.%Get()Opens in a new tab、%DynamicArray.%Get()Opens in a new tab
%Iterator オブジェクトを返して、ダイナミック・エンティティのすべてのメンバの反復処理を可能にします。詳細と例は、“%GetNext() を使用したダイナミック・エンティティの反復処理” を参照してください。
method %GetIterator() as %Iterator.AbstractIterator
関連項目 : %GetNext()
クラス・リファレンス : %DynamicObject.%GetIterator()Opens in a new tab、%DynamicArray.%GetIterator()Opens in a new tab、%Iterator.Object、%Iterator.Array
これは、%GetIterator() によって返される %Iterator オブジェクトのメソッドです。反復子を進めて、反復子の位置が有効な要素の場合は true を返し、反復子が最終要素を越えている場合は false を返します。key 引数と value 引数は、現在の反復子位置にある有効な要素の値を返します。オプションの type 引数は、value の元の型を返します。詳細と例は、“%GetNext() を使用したダイナミック・エンティティの反復処理” を参照してください。
method getNext(Output key, Output value, Output type...) as %Integer
パラメータ :
-
key — 現在の位置にある要素のオブジェクト・キーまたは配列インデックスを返します。
-
value — 現在の位置にある要素の値を返します。
-
type — (オプション) value の元の型の表す %GetTypeOf() の返り値を格納する文字列を返します。この 3 番目の引数変数が存在する場合、これによって要素を ObjectScript 値に変換する変換ルールの一部が変更されます (詳細な変換ルールについては、"%Iterator.Object.%GetNext()" と "%Iterator.Array.%GetNext()" を参照)。
関連項目 : %GetIterator()
クラス・リファレンス : %Iterator.Object.%GetNext()、%Iterator.Array.%GetNext()
有効なオブジェクト・キーまたは配列インデックスが指定されると、値のデータ型を示す文字列を返します。詳細と例は、“データ型を使用した作業” を参照してください。
method %GetTypeOf(key) as %String
パラメータ :
-
key — テストする値のオブジェクト・キーまたは配列インデックス。
返り値 :
以下のいずれかの文字列が返されます。
-
"null" — JSON の null
-
"boolean" — ゼロ (“false”) またはゼロ以外 (“true”) の数値
-
"number" — 任意のキャノニック形式の数値
-
"oref" — 別のオブジェクトの参照
-
"object" — 入れ子になったオブジェクト
-
"array" — 入れ子になった配列
-
"string" — 標準のテキスト文字列
-
"unassigned" — そのプロパティまたは要素は存在しているが、値が割り当てられていない
関連項目 : %IsDefined()
クラス・リファレンス : %DynamicAbstractObject.%GetTypeOf()Opens in a new tab
key で指定された項目がオブジェクト内で定義されているかどうかをテストします。項目が割り当てられていない場合や存在しない場合は、False を返します。詳細と例は、“%IsDefined() を使用した有効値の有無の確認” を参照してください。
method %IsDefined(key) as %Boolean
パラメータ :
-
key — テストする項目のオブジェクト・キーまたは配列インデックス。配列インデックスはキャノニック形式の整数値として渡される必要があります。配列インデックスの先頭位置は 0 です。
関連項目 : "NULL、空の文字列、および未割り当て値の解決"
クラス・リファレンス : %DynamicObject.%IsDefined()Opens in a new tab、%DynamicArray.%IsDefined()Opens in a new tab
配列の最終メンバの値を返します。その後、この値は配列から削除されます。配列が既に空である場合は、このメソッドは空の文字列 ("") を返します。詳細と例は、“動的配列での %Push と %Pop の使用” を参照してください。
method %Pop() as %RawString
関連項目 : "%Push()"、"%Get()"、"%Remove()"、"NULL、空の文字列、および未割り当て値の解決"
クラス・リファレンス : %DynamicArray.%Pop()Opens in a new tab
新しい値を現在の配列の末尾に追加して、配列の長さを拡大します。現在の変更後の配列を指す oref を返して、%Push() の呼び出しを連鎖可能にします。詳細と例は、“動的配列での %Push と %Pop の使用” を参照してください。
method %Push(value, type) as %DynamicAbstractObject
パラメータ :
-
value — 新しい配列要素に割り当てる値。
-
type — (オプション) value のデータ型を示す文字列 (値の変換方法の詳細は、"%DynamicArray.%Push()Opens in a new tab" を参照)。以下の文字列を使用できます。
-
"null" — JSON の null。value 引数は必ず "" (空の文字列)。
-
"boolean" — ゼロ/ゼロ以外は JSON の false/true になります
-
"number" — value をキャノニック形式の数値に変換します
-
"string" — value をテキスト文字列に変換します
-
"string>base64" — テキスト文字列に変換して base64 にエンコードします
-
"string<base64" — テキスト文字列に変換して base64 からデコードします
-
"stream" — テキスト文字列に変換された %Stream コンテンツ
-
"stream>base64" — %Stream コンテンツは base64 文字列にエンコードされます
-
"stream<base64" — %Stream は base64 からバイト文字列にデコードされます
注 : 指定した value がオブジェクトまたは oref の場合、オプションの type パラメータを使用することはできません。例えば、指定した value がダイナミック・エンティティの場合、type に指定した値にかかわらず、エラーがスローされます。詳細は、“%Set() または %Push() を使用したデフォルトデータ型のオーバーライド” を参照してください。
-
関連項目 : "%Pop()"、"%Set()"、"メソッドの連鎖"
クラス・リファレンス : %DynamicArray.%Push()Opens in a new tab
指定された要素をダイナミック・オブジェクトまたは動的配列から削除して、その削除された要素の値を返します。その要素の値が埋め込みダイナミック・オブジェクトまたは埋め込み動的配列である場合は、すべての従属ノードも削除されます。動的配列の場合は、削除された要素の後続要素すべてについて、添え字位置の値が 1 だけ小さくなります。詳細と例は、“%Set()、%Get()、および %Remove() の使用” を参照してください。
method %Remove(key) as %DynamicAbstractObject
パラメータ :
-
key — 削除する要素のオブジェクト・キーまたは配列インデックス。配列インデックスはキャノニック形式の整数値として渡される必要があります。配列インデックスの先頭位置は 0 です。
クラス・リファレンス : %DynamicObject.%Remove()Opens in a new tab、%DynamicArray.%Remove()Opens in a new tab
新しい値を作成するか、既存の値を更新します。変更された配列の参照を返して、%Set() の呼び出しを入れ子にすることを可能にします。詳細と例は、“%Set()、%Get()、および %Remove() の使用” を参照してください。
method %Set(key, value, type) as %DynamicAbstractObject
パラメータ :
-
key — 作成または更新する値のオブジェクト・キーまたは配列インデックス。配列インデックスはキャノニック形式の整数値として渡される必要があります。配列インデックスの先頭位置は 0 です。
-
value — 既存の値を更新するための新しい値、または新たに作成する値。
-
type — (オプション) value のデータ型を示す文字列 (値の変換方法の詳細は、"%DynamicObject.%Set()Opens in a new tab" と "%DynamicArray.%Set()Opens in a new tab" を参照)。以下の文字列を使用できます。
-
"null" — JSON の null。value 引数は必ず "" (空の文字列)。
-
"boolean" — JSON の false (value 引数は必ず 0) または true (value 引数は必ず 1)。
-
"number" — value をキャノニック形式の数値に変換します
-
"string" — value をテキスト文字列に変換します
-
"string>base64" — テキスト文字列に変換して base64 にエンコードします
-
"string<base64" — テキスト文字列に変換して base64 からデコードします
-
"stream" — テキスト文字列に変換された %Stream コンテンツ
-
"stream>base64" — %Stream コンテンツは base64 文字列にエンコードされます
-
"stream<base64" — %Stream は base64 からバイト文字列にデコードされます
注 : 指定した value がオブジェクトまたは oref の場合、オプションの type パラメータを使用することはできません。例えば、指定した value がダイナミック・エンティティの場合、type に指定した値にかかわらず、エラーがスローされます。詳細は、“%Set() または %Push() を使用したデフォルトデータ型のオーバーライド” を参照してください。
-
関連項目 : "%Get()"、"%Remove()"、"%Push()"、"メソッドの連鎖"
クラス・リファレンス : %DynamicObject.%Set()Opens in a new tab、%DynamicArray.%Set()Opens in a new tab
ダイナミック・オブジェクトまたは動的配列のサイズを示す整数を返します。配列の場合は、このサイズには配列内の未割り当て要素も含まれます。オブジェクトの場合は、このサイズには値が割り当てられている要素のみが含まれます。詳細と例は、“%Size() を使用したスパース配列の反復処理” を参照してください。
method %Size() as %Integer
関連項目 : %GetNext()
クラス・リファレンス : %DynamicAbstractObject.%Size()Opens in a new tab
%DynamicAbstractObject. のインスタンスを JSON 文字列に変換します。%ToJSON() がエラーを返さない場合、常に 2 文字以上を格納する文字列を返します (配列の場合は []、オブジェクトの場合は {})。詳細と例は、“ダイナミック・エンティティと JSON の間の変換” を参照してください。
method %ToJSON(outstrm As %Stream.Object) as %String
パラメータ :
-
outstrm — オプション。以下のようないくつかのケースが考えられます。
-
outstrm が指定されておらず、このメソッドが DO を介して呼び出された場合は、JSON 文字列は現在の出力デバイスに書き込まれます。
-
outstrm が指定されておらず、このメソッドが式として呼び出された場合は、JSON 文字列はその式の値になります。
-
outstrm が %Stream.ObjectOpens in a new tab のインスタンスとして指定されている場合は、JSON 文字列がストリームに書き込まれます (詳細と例は、“大きいダイナミック・エンティティからストリームへのシリアル化” を参照)。
-
outstrm がオブジェクトであるが、%Stream.ObjectOpens in a new tab のインスタンスではない場合は、例外がスローされます。
-
outstrm がオブジェクトではなく、NULL でもない場合は、完全修飾ファイル指定であると見なされます (ファイルのフル・パスを指定する必要があります)。このファイルは新規作成された %Stream.FileCharacterOpens in a new tab ストリームにリンクされ、JSON 文字列はストリームに書き込まれ、完了時にストリームがこのファイルに保存されます。
-
関連項目 : "%FromJSON()" %FromJSONFile()
クラス・リファレンス : %DynamicAbstractObject.%ToJSON()Opens in a new tab