Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Selection to JSON
|
Selection to JSON ( laTabla {; elCampo}{; elCampo2 ; ... ; elCampoN}{; template}) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
laTabla | Tabla |
![]() |
Tabla a serializar | |||||
elCampo | Campo |
![]() |
Campo(s) cuyo(s) contenidos deben ser serializados | |||||
template | Objeto |
![]() |
Objeto para la selección de etiquetas y de campos | |||||
Resultado | Texto |
![]() |
Cadena que contiene el array JSON serializado | |||||
El comando Selection to JSON devuelve una cadena que contiene un array JSON con tantos elementos como registros hay en la selección actual de laTabla. Cada elemento del array es un objeto JSON que contiene las etiquetas y los valores de los campos de la selección.
Si sólo pasa el parámetro laTabla, el comando incluye en el array JSON, los valores de todos los campos de la tabla que se pueden expresar en JSON. Los campos tipo BLOB e imagen se ignoran.
Si no desea incluir todos los campos de laTabla, puede utilizar el parámetro elCampo o el parámetro plantilla:
Este comando soporta campos de tipo Objeto: los datos de estos campos se convierte automáticamente en formato JSON (los valores de atributo imagense convierten como cadenas "(objeto Imagen)". Tenga en cuenta que la siguiente instrucción 4D será interpretado como "producir JSON a partir de todos los valores de campoObjeto en la selección actual de la tabla":
Selection to JSON([aTable];objectField)
Nota: después de un llamado a Selection to JSON, la selección actual no se modifica, pero el registro actual no se carga y podría haber cambiado (el último registro de la selección actual es entonces el registro actual). Después del comando Selection to JSON, utilice los comandos LOAD RECORD en combinación con GOTO SELECTED RECORD (si es necesario) utilice los valores de los campos en el registro actual.
Quiere crear una cadena JSON que represente esta selección:
1) Desea incluir los valores de todos los campos de la tabla [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) Desea reducir la selección y sólo incluir dos campos en la cadena JSON utilizando la sintaxis basada en los 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ólo desea incluir un campo en la cadena JSON y utilizar una etiqueta diferente.
Puede utilizar la sintaxis template:
C_OBJECT($template)
OB SET($template;"Member";->[Members]LastName) //etiqueta personalizada y un campo sencillo
ALL RECORDS([Members])
$jsonString :=Selection to JSON([Members];$template)
// $jsonString = [{"Member":"Durant"},{"Member":"Smith"},{"Member":"Anderson"},
// {"Member":"Albert"},{"Member":"Leonard"},{"Member":"Pradel"}]
Puede utilizar la sintaxis template para exportar campos de tablas 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 lo contrario conflicto con el 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)
Producto: 4D
Tema: JSON
Número
1234
Creado por: 4D v14
Modificado: 4D v16 R4
Manual de lenguaje 4D ( 4D v20 R7)