4D v14.3

OB Get

ホーム

 
4D v14.3
OB Get

OB Get 


 

OB Get ( object ; property {; type} ) -> 戻り値 
引数   説明
object  Object in 構造化されたオブジェクト
property  テキスト in 情報を取得したいプロパティ名
type  倍長整数 in 値を変換したい型
戻り値  Object, テキスト, ブール, ポインター, 実数, 日付 in プロパティのカレントの値

説明   

OB Getコマンドは、 object 引数で指定したオブジェクトの property のカレントの値を返します。任意の type 引数で指定した型へと変換することもできます。

object で指定するオブジェクトは、 C_OBJECT コマンドを使用して作成されている必要があります。

property 引数には、情報を取得したいプロパティのラベルを渡します。property 引数では、大文字と小文字は区別されることに注意して下さい。

特に指定がなければ、 4D はプロパティの値を本来の型のまま返します。このとき、 type 引数を使用することによって返ってくる値の型を強制的に変換することができます。この場合、 type 引数には以下の定数のどれか一つを渡して下さい。これらの定数は Field and Variable Types テーマ内にあります。

定数
Is Boolean 倍長整数 6
Is date 倍長整数 4
Is integer 倍長整数 8
Is integer 64 bits 倍長整数 25
Is JSON null 倍長整数 255
Is LongInt 倍長整数 9
Is object 倍長整数 38
Is real 倍長整数 1
Is string var 倍長整数 24
Is text 倍長整数 2
Is time 倍長整数 11
Object array 倍長整数 39

コマンドは property 引数で指定されたプロパティの値を返します。いくつかのデータの型がサポートされています。以下のことに注意して下さい:

  • ポインターはそのまま返されますが、 JSON Stringify コマンドを使用することによってポインターが指してる値に変換することができます。
  • 日付は "\"YYYY-MM-DDTHH:mm:ssZ\"" というフォーマットで返されます。
  • 実数の値において、小数点はかならずピリオド( ".")になります。
  • 時刻は数字で表現されます(4Dでは秒単位の、JSONではミリ秒単位の数字になります)。

テキスト型の値を取得する場合:

 C_OBJECT($ref)
 C_TEXT($FirstName)
 OB SET($ref;"FirstName";"Harry")
 $FirstName:=OB Get($ref;"FirstName") // $FirstName = "Harry" (text)

実数型の値を取得して、倍長整数へと変換する場合:

 OB SET($ref ;"age";42)
 $age:=OB Get($ref ;"age") //  $age は実数型(デフォルト)
 $age:=OB Get($ref ;"age";Is LongInt// $age を倍長整数型に変換

オブジェクトの中の値を取得する場合:

 C_OBJECT($ref1;$ref2)
 OB SET($ref1;"LastName";"Smith") // $ref1={"LastName":"Smith"}
 OB SET($ref2;"son";$ref1// $ref2={"son":{"LastName":"Smith"}}
 $son:=OB Get($ref2;"son") // $son={"LastName":"john"} (object)
 $sonsName:=OB Get($son ;"name") // $sonsName="john" (text)

従業員の年齢を二度修正したい場合:

 C_OBJECT($ref_john;$ref_jim)
 OB SET($ref_john;"name";"John";"age";35)
 OB SET($ref_jim;"name";"Jim";"age";40)
 APPEND TO ARRAY($myArray;$ref_john// オブジェクト配列を作成
 APPEND TO ARRAY($myArray;$ref_jim)
  // John の年齢を35から25 へと修正
 OB SET($myArray{1};"age";25)
  // 配列内で"John" の年齢を修正
 For($i;1;Size of array($myArray))
    If(OB Get($myArray{$i};"name")="John")
       OB SET($myArray{$i};"age";36) // 25 から 36 へと修正
  // $ref_john={"name":"John","age":36}
    End if
 End for

ISO 形式のデータを日付型で取り出す場合:

 C_OBJECT($object)
 C_DATE($birthday)
 C_TEXT($birthdayString)
 OB SET($object;"Birthday";"1990-12-25T12:00:00Z")
 $birthdayString:=OB Get($object;"Birthday")
  // $birthdayString="1990-12-25T12:00:00Z"
 $birthday:=OB Get($object;"Birthday";Is date)
  // $birthday=25/12/90

入れ子にされたオブジェクトを使用することもできます:

 C_OBJECT($ref1;$child;$children)
 C_TEXT($childName)
 OB SET($ref1;"firstname";"John";"lastname";"Monroe")
  //{"firstname":"john","lastname";"Monroe"}
 OB SET($children;"children";$ref1)
 $child:=OB Get($children;"children")
  //$son = {"firstname":"John","lastname":"Monroe"} (object)
 $childName:=OB Get($child;"lastname")
  //$childName = "Monroe" (text)
  // または
 $childName:=OB Get(OB Get($children;"children");"lastname")
  // $childName = "Monroe" (text)

 
プロパティ 

プロダクト: 4D
テーマ: オブジェクト(ランゲージ)
番号: 1224

 
履歴 

New
初出: 4D v14

 
参照 

Field and Variable Types
OB Copy

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)