4D v16.3

Selection to JSON

Página Inicial

 
4D v16.3
Selection to JSON

Selection to JSON 


 

Selection to JSON ( aTabela {; oCampo}{; oCampo2 ; ... ; oCampoN}{; modelo}) -> Resultado 
Parâmetro Tipo   Descrição
aTabela  Tabela in Tabela a serializar
oCampo  Campo in Campo(s) cujo(s) conteúdos devem ser serializados
modelo  Objeto in Objeto para a seleção de etiquetas e de campos
Resultado  Texto in Cadeia que contém o array JSON serializado

O comando Selection to JSON devolve uma cadeia JSON que contém os valores dos campos da seleção atual de aTabela. Cada elemento do array é um objeto JSON contendo as etiquetas e valores dos campos da seleção.

Caso passe só o parâmetro aTabela, o comando inclui, na cadeia JSON, os valores de todos os campos da tabela que podem ser expressados em JSON. Os campos tipo BLOB e imagem são ignorados.

Se não deseja incluir todos os campos de aTabela, pode utilizar o parâmetro oCampo ou o parâmetro modelo:

  • oCampo: passe um ou mais campos neste parâmetro. Só os valores dos campos definidos são incluídos na cadeia JSON.
  • modelo: passe um objeto 4D que contém um ou mais pares nome/valor onde valor contém um ponteiro a um campo à incluir (ver o exemplo 3).

Este comando suporta campos tipo Objeto: os dados desses campos são automaticamente convertidos ao formato JSON. Note que o  comando 4D abaixo pode ser interpretado como "produza JSON de todos os valores de objetoCampo na seleção atual da tabela":

 Selection to JSON([aTable];objectField)

Nota: Depois de uma chamada a Selection to JSON, a seleção atual e registro atual permanecem o mesmo, mas o registro atual não é mais carregado. e poderia ter mudado (o último registro da seleçao atual é então o registro atual). Depois do comando Selection to JSON, utilize os comandos LOAD RECORD em combinação com GOTO SELECTED RECORD (se for necessário) utilize os valores dos campos no registro atual.

Quer criar uma cadeia JSON que represente esta seleção:

1) Deseja incluir os valores de todos os campos da tabela [Members]:

 $jsonString :=Selection to JSON([Members])
  // $jsonString =[{"LastName":"Durant","FirstName":"Mark","Address":
  //"25 Park St","Zip code":"15205","City":"Pittsburgh"},{"LastName":
  //"Smith","FirstName":"John","Address":"24 Philadelphia Ave","Zip code":
  //"75203","City":"Dallas"},{"LastName":"Anderson","FirstName"
  //:"Adeline","Address":"37 Market St","Zip code":"45205","City":"Cincinnati"},...]

2) Deseja reduzir a seleção e só incluir dois campos na cadeia JSON utilizando a sintaxe baseada nos campos:

 QUERY([Members];[Members]LastName="A@")
 $jsonString :=Selection to JSON([Members];[Members]LastName;[Members]City)
  // $jsonString = [{"LastName":"Anderson","City":"Cincinnati"},
  // {"LastName":"Albert","City":"Houston"}]

3) Só deseja incluir um campo na cadeia JSON utilizando a sintaxe do modelo:

 C_OBJECT($template)
 OB SET($template;"LastName";->[Members]LastName) // um só campo
 ALL RECORDS([Members])
 $jsonString :=Selection to JSON([Members];$template)
  // $jsonString = [{"LastName":"Durant"},{"LastName":"Smith"},{"LastName":"Anderson"},{"LastName":"Albert"},
  // {"LastName":"Leonard"},{"LastName":"Pradel"}]

Pode usar a sintaxe modelo para exportar campos de tabelas diferentes:

 C_OBJECT($template)
 C_TEXT($jsonString)
 OB SET($template;"Last name";->[Emp]LastName)
 OB SET($template;"First name";->[Emp]FirstName)
 OB SET($template;"Company";->[Company]LastName) //etiqueta personalizada de outro modo entra em conflito com campo [Emp]LastName
 ALL RECORDS([Emp])
 SET FIELD RELATION([Emp]UUID_Company;Automatic;Do not modify)
 $jsonString:=Selection to JSON([Emp];$template)
 SET FIELD RELATION([Emp]UUID_Company;Structure configuration;Do not modify)



Ver também 

JSON TO SELECTION

 
PROPRIEDADES 

Produto: 4D
Tema: JSON
Número 1234

This command can be run in preemptive processes

 
HISTÓRIA 

Criado por: 4D v14

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)