Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v19.8
entity.toObject( )

entity.toObject( ) 


 

entity.toObject ( filtro {; opções} ) -> Resultado 
Parâmetro Tipo   Descrição
filtro  String, Collection in Especifica as propriedades a extrair
opções  Inteiro longo in dk with primary keys: adiciona a propriedade _KEY:
dk with stamp: adiciona a propriedade _STAMP
Resultado  Objeto in Objeto construído de uma entidade

O método entity.toObject( ) retorna um objeto que foi construído a partir da entidade. Nomes de propriedade na correspondência de objeto entre nomes de atributos da entidade.

No parâmetro filtro, é possível passar os atributos de entidade a extrari. Duas sintaxes são permitidas:
  • uma string com rotas de propriedade separadas com vírgulas: "propertyPath1, propertyPath2, ...".
  • uma coleção de strings: ["propertyPath1","propertyPath2";...]

Se filtro for especificado para atributos de tipo entidadeRelacionada:

  • propertyPath = "relatedEntity" -> é extraído com um formulário simples: um objeto com a propriedade __KEY (chave primária).
  • propertyPath = "relatedEntity.*" -> todas as propriedades são extraídas
  • propertyPath = "relatedEntity.propertyName1; relatedEntity.propertyName2; ..." -> apenas aquelas propriedades são extraídas

Se filtro for especificado para atributos do tipo entidadesRelacionadas:

  • propertyPath = "relatedEntities.*" -> todas as propriedades são extraídas
  • propertyPath = "relatedEntities.propertyName1; relatedEntities.propertyName2; ..." -> apenas aquelas essas propriedades são extraídas


Se o parâmetro filtro conter uma string vazia ou  "*", o objeto retornado vai conter:

    todos os atributos de armazenamento de entidade
    atributos de tipo entidadeRelacionado: obtém uma propriedade com o mesmo nome que a entidade relacionada (nome do link muitos-para-um). Atributo é extraído com um único formulário.
    atributos do tipo entidadesRelacionadas: atributo não é retornado.

No parâmetro opções, é possível passar os seletores dk with primary key ou dk with stamp para adicionar chaves primárias de entidade ou carimbos (stamps) em objetos extraídos

A estrutura abaixo será usada através de todos os exemplos dessa seção:

Sem o parâmetro filttro:

 employeeObject:=employeeSelected.toObject()

Retorna:

{
    "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": { // entidadeRelacionada extraída com um formulário simples
        "__KEY": 20
    },
    "manager": {
        "__KEY": 412
    }
}

Extrair as chaves primárias e a stamp (carimbo):

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

Returns:

{
    "__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
    }
}

Para expandir todas as propriedades de entidadesRelacionadas:

 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
            }
        }
    ]
}

Para extrair algumas propriedades de entidadesRelacionadas:

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

Returns:

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

Para extrair uma entidadeRelacionada com um formulário simples:

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

Returns:

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

Para extrair todas as propriedades de uma entidadeRelacionada:

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

Returns:

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

Para extrair algumas propriedades de uma entidadeRelacionada:

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

Returns:

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



Ver também 

entity.fromObject( )

 
PROPRIEDADES 

Produto: 4D
Tema: ORDA - Entidade

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v17

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v19)
Manual de linguagem 4D ( 4D v19.1)
Manual de linguagem 4D ( 4D v19.4)
Manual de linguagem 4D ( 4D v19.5)
Manual de linguagem 4D ( 4D v19.6)
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)