| 4D v18JSON Stringify | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 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 v18)
	
	
	
	
	
 Añadir un comentario
Añadir un comentario