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
JSON Stringify
|
JSON Stringify ( valor {; *} ) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
valor | Objeto, Mixed |
![]() |
Datos a convertir en cadena JSON | |||||
* | Operador |
![]() |
Mejorar el formato | |||||
Resultado | Texto |
![]() |
Cadena que contiene el texto JSON serializado | |||||
El comando JSON Stringify convierte el parámetro valor en una cadena JSON. Este comando realiza la acción opuesta del comando JSON Parse.
Pase los datos a serializar en valor. Se pueden expresar en forma escalar (cadena, número, fecha u hora) o vía un objeto 4D o una colección.
Nota: las fechas 4D se convertirán en formato "aaaa-mm-dd" o "AAAA-MM-DDThh:mm:sssZ" según la configuración actual de la fecha de la base (ver la opción "Utilizar el tipo fecha en lugar del formato fecha ISO en los objetos" en Página Compatibilidad).
En el caso de un objeto o una colección, puede incluir todo tipo de valores (ver el párrafo Tipos de datos JSON), respetando las siguientes reglas de JSON:
Conversión de valores escalares:
$vc:=JSON Stringify("Eureka!") // "Eureka!"
$vel:=JSON Stringify(120) // "120"
$vh:=JSON Stringify(?20:00:00?) // "72000000" segundos desde la media noche
$vd:=JSON Stringify(!28/08/2013!) // "2013-08-27T22:00:00.000Z" (Paris timezone)
SET DATABASE PARAMETER(Dates inside objects;String type without time zone)
$vdd:=JSON Stringify(!28/08/2013!) // "2013-08-28T00:00:00.000Z"
Conversión de una cadena que contiene caracteres especiales:
$s:=JSON Stringify("{\"name\":\"john\"}")
// $s="{\\"name\\":\\"john\\"}"
$p:=JSON Parse($s)
// $p={"name":"john"}
Ejemplos de serialización de un objeto 4D con y sin el parámetro *:
C_TEXT($MyContact)
C_TEXT($MyPContact)
C_OBJECT($Contact;$Children)
OB SET($Contact;"lastname";"Monroe";"firstname";"Alan")
OB SET($Children;"firstname";"Jim";"age";"12")
OB SET($Contact;"children";$Children)
$MyContact:=JSON Stringify($Contact)
$MyPContact:=JSON Stringify($Contact;*)
//$MyContact= {"lastname":"Monroe","firstname":"Alan","children":{"firstname":"John","age":"12"}}
//$MyPContact= {\n\t"lastname": "Monroe",\n\t"firstname": "Alan",\n\t"children": {\n\t\t"firstname": "John",\n\t\t"age": "12"\n\t}\n}
La ventaja de este formato es clara cuando el JSON se muestra en un área web:
Ejemplo utilizando un puntero en una variable:
C_OBJECT($MyTestVar)
C_TEXT($name ;$jsonstring )
OB SET($MyTestVar;"name";->$name) // definición del objeto
// $MyTestVar= {"name":"->$name"}
$jsonstring :=JSON Stringify($MyTestVar)
// $jsonstring ="{"name":""}"
//...
$name:="Smith"
$jsonstring :=JSON Stringify($MyTestVar)
//$jsonstring = "{"name" : "Smith"}"
Serialización de un objeto 4D:
C_TEXT($varjsonTextserialized)
C_OBJECT($Contact)
OB SET($Contact;"firstname";"Alan")
OB SET($Contact;"lastname";"Monroe")
OB SET($Contact;"age";40)
OB SET($Contact;"phone";"[555-0100,555-0120]")
$varjsonTextserialized:=JSON Stringify($Contact)
// $varjsonTextserialized = "{"lastname":"Monroe","phone":"[555-0100,
// 555-0120]","age":40,"firstname":"Alan"}"
Serialización de un objeto 4D que contiene un valor fecha (zona horaria de París). La cadena resultante depende de la configuración actual de la fecha de la base.
C_TEXT($varjsonTextserialized)
C_OBJECT($Contact)
OB SET($Contact;"name";"Smith";"birthday";!22/10/1975!)
$varjsonTextserialized:=JSON Stringify($Contact)
"name":"Smith",
"birthday":"1975-10-21T22:00:00.000Z"
"name":"Smith",
"birthday":"1975-10-22"
Nota: para obtener más información sobre esta configuración, consulte Página Compatibilidad.
Conversión de una colección (zona horaria de París). La cadena resultante depende de la configuración actual de la fecha de la base de datos.
C_COLLECTION($myCol)
C_TEXT($myTxtCol)
$myCol:=New collection(33;"mike";!28/08/2017!;False)
$myTxtCol:=JSON Stringify($myCol)
$myTxtCol="[33,"mike","2017-08-27T22:00:00.000Z",false]"
$myTxtCol="[33,"mike","2017-08-28",false]"
Nota: para más información sobre esta opción, consulte Página Compatibilidad.
Producto: 4D
Tema: JSON
Número
1217
Creado por: 4D v14
Modificado: 4D v16 R4
Modificado: 4D v16 R6
Manual de lenguaje 4D ( 4D v20 R7)