ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v19.8
entity.toObject( )

entity.toObject( ) 


 

entity.toObject ( filter {; options} ) -> 戻り値 
引数   説明
filter  文字, コレクション in 取得する属性
options  倍長整数 in dk with primary key: _KEY プロパティを追加;
dk with stamp: _STAMP プロパティを追加
戻り値  オブジェクト in エンティティからビルドされたオブジェクト

説明   

entity.toObject( ) メソッドはエンティティからビルトされたオブジェクトを返します。オブジェクト内部のプロパティ名はエンティティの属性名と合致します。

filter 引数には、取得するエンティティ属性を渡します。二つのシンタックスが使用できます:

  • プロパティパスをカンマで区切った文字列: "propertyPath1, propertyPath2, ..."
  • 文字列のコレクション: ["propertyPath1","propertyPath2";...]

filter 引数がリレートエンティティ型の属性を指定する場合:

  • propertyPath = "relatedEntity" -> 単純な形式で取得されます: __KEY プロパティ(プライマリーキー)を持つオブジェクトです
  • propertyPath = "relatedEntity.*" -> 全てのプロパティが取得されます
  • propertyPath = "relatedEntity.propertyName1; relatedEntity.propertyName2; ..." -> 指定されたプロパティのみが取得されます

filter 引数がリレートエンティティズ型の属性を指定する場合:

  • propertyPath = "relatedEntities.*" -> 全てのプロパティが取得されます
  • propertyPath = "relatedEntities.propertyName1; relatedEntities.propertyName2; ..." -> 指定されたプロパティのみが取得されます

filter 引数が空の文字列、あるいは "*" を格納している場合、以下のいづれかが返されます:

  • 全てのストレージエンティティ属性
  • リレートエンティティ型の属性: リレートエンティティと同じ名前(N対1リンクの名前)のプロパティ。属性は単純な形式で取得されます。
  • リレートエンティティズ型の属性: 属性は返されません。

options 引数には、dk with primary key または dk with stamp セレクターを渡すことでエンティティのプライマリーキー、あるいはスタンプを取得したオブジェクトに追加するかどうかを指定できます。

このセクションの例題では、全て以下のストラクチャーを使って説明していきます:

filter 引数を使用しない場合:

 employeeObject:=employeeSelected.toObject()

以下が返されます:

{
    "ID": 413,
    "firstName": "Greg",
    "lastName": "Wahl",
    "salary": 0,
    "birthDate": "1963-02-01T00:00:00.000Z",
    "woman": false,
    "managerID": 412,
    "employerID": 20,
    "photo": "[object Picture]",
    "extra": null,
    "employer": { // 単純な形式で取得されたリレートエンティティ
        "__KEY": 20
    },
    "manager": {
        "__KEY": 412
    }
}

プライマリーキーとスタンプを取得する場合を考えます:

 employeeObject:=employeeSelected.toObject("";dk with primary key+dk with stamp)

以下が返されます:

{
    "__KEY": 413,
   "__STAMP": 1,
    "ID": 413,
    "firstName": "Greg",
    "lastName": "Wahl",
    "salary": 0,
    "birthDate": "1963-02-01T00:00:00.000Z",
    "woman": false,
    "managerID": 412,
    "employerID": 20,
    "photo": "[object Picture]",
    "extra": null,
    "employer": {
        "__KEY": 20
    },
    "manager": {
        "__KEY": 412
    }
}

リレートエンティティズのプロパティを全て展開する場合を考えます:

 employeeObject:=employeeSelected.toObject("directReports.*")

{
    "directReports": [
        {
            "ID": 418,
            "firstName": "Lorena",
            "lastName": "Boothe",
            "salary": 44800,
            "birthDate": "1970-10-02T00:00:00.000Z",
            "woman": true,
            "managerID": 413,
            "employerID": 20,
            "photo": "[object Picture]",
            "extra": null,
            "employer": {
                "__KEY": 20
            },
            "manager": {
                "__KEY": 413
            }
        },
        {
            "ID": 419,
            "firstName": "Drew",
            "lastName": "Caudill",
            "salary": 41000,
            "birthDate": "2030-01-12T00:00:00.000Z",
            "woman": false,
            "managerID": 413,
            "employerID": 20,
            "photo": "[object Picture]",
            "extra": null,
            "employer": {
                "__KEY": 20
            },
            "manager": {
                "__KEY": 413
            }
        },
        {
            "ID": 420,
            "firstName": "Nathan",
            "lastName": "Gomes",
            "salary": 46300,
            "birthDate": "2010-05-29T00:00:00.000Z",
            "woman": false,
            "managerID": 413,
            "employerID": 20,
            "photo": "[object Picture]",
            "extra": null,
            "employer": {
                "__KEY": 20
            },
            "manager": {
                "__KEY": 413
            }
        }
    ]
}

リレートエンティティズの一部のプロパティを取得する場合を考えます:

 employeeObject:=employeeSelected.toObject("firstName, directReports.lastName")

以下が返されます:

{
    "firstName": "Greg",
    "directReports": [
        {
            "lastName": "Boothe"
        },
        {
            "lastName": "Caudill"
        },
        {
            "lastName": "Gomes"
        }
    ]
}

リレートエンティティを単純な形式で取得する場合を考えます:

 $coll:=New collection("firstName";"employer")
 employeeObject:=employeeSelected.toObject($coll)

以下が返されます:

{
    "firstName": "Greg",
    "employer": {
        "__KEY": 20
    }
}

リレートエンティティの全てのプロパティを取得する場合を考えます:

 employeeObject:=employeeSelected.toObject("employer.*")

以下が返されます:

{
    "employer": {
        "ID": 20,
        "name": "India Astral Secretary",
        "creationDate": "1984-08-25T00:00:00.000Z",
        "revenues": 12000000,
        "extra": null
    }
}

リレートエンティティの一部のプロパティを取得する場合を考えます:

 $col:=Create collection
 $col.push("employer.name")
 $col.push("employer.revenues")
 employeeObject:=employeeSelected.toObject($col)

以下が返されます:

{
    "employer": {
        "name": "India Astral Secretary",
        "revenues": 12000000
    }
}



参照 

entity.fromObject( )

 
プロパティ 

プロダクト: 4D
テーマ: ORDA - エンティティ

 
ページの目次 
 
履歴 

初出: 4D v17

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v19)
ランゲージリファレンス ( 4D v19.1)
ランゲージリファレンス ( 4D v19.4)
ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)