4D v16.3

JSON Stringify

Inicio

 
4D v16.3
JSON Stringify

JSON Stringify 


 

JSON Stringify ( valor {; *} ) -> Resultado 
Parámetro Tipo   Descripción
valor  Objeto, Array objeto, Cadena, Real, Fecha, Hora in Datos a convertir en cadena JSON
Operador in Mejorar el formato
Resultado  Texto in Cadena que contiene el texto JSON serializado

El comando JSON Stringify convierte el parámetro valor en una cadena JSON. Este comando serializa los datos en JSON, realiza la acción inversa del comando JSON Parse.

Pase los datos a serializar en valor. Se pueden expresar en forma escalar (cadena, número, fecha u hora) o por medio de un objeto 4D (o un array de objetos).

En el caso de un objeto, que puede incluir todo tipo de valores (ver el párrafo Tipos de datos JSON). El formato JSON debe respetar las siguientes reglas:

  • Los valores de tipo cadena deben ir entre comillas. Todos los caracteres Unicode pueden usarse excepto los caracteres especiales que deben ser precedidos por una barra oblicua invertida.
  • Números: intervalo ±10.421e±10
  • Booleano: cadenas "true " o " false"
  • Punteros a un campo, variable o array (el puntero se evalúa al momento del stringify)
  • Fecha: tipo de texto
  • Hora: tipo real

Puede pasar el parámetro opcional * con el fin de incluir caracteres con formato en la cadena resultante. Esta opción mejora la presentación de los datos JSON (pretty formatting).

Conversión de valores escalares:

 $vc:=JSON Stringify("Eureka!") // "Eureka!"
 $vel:=JSON Stringify(120) // "120"
 $vd:=JSON Stringify(!28/08/2013!) //  "2013-08-27T22:00:00Z"
 $vh:=JSON Stringify(?20:00:00?) // "72000000" segundos desde la media noche

Conversión de una cadena que contiene caracteres especiales:

 $s:=JSON Stringify("{\"name\":\"john\"}")
  // $s="{\\"name\\":\\"john\\"}"
 $p:=JSON Parse($s)
  // $p={"name":"john"}

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

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:

  • Formato estándar:
  • Formato mejorado:



Ver también 

JSON Parse
JSON Stringify array

 
PROPIEDADES 

Producto: 4D
Tema: JSON
Número 1217

This command can be run in preemptive processes

 
HISTORIA 

Creado por: 4D v14

 
ARTICLE USAGE

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