4D v16.3

JSON Stringify

Página Inicial

 
4D v16.3
JSON Stringify

JSON Stringify 


 

JSON Stringify ( valor {; *} ) -> Resultado 
Parâmetro Tipo   Descrição
valor  Objeto, Array objeto, String, Real, Data, Hora in Dados a converter em cadeia JSON
Operador in Melhorar o formato
Resultado  Texto in Cadeia que contém o texto JSON serializado

O comando JSON Stringify converte o parâmetro valor em uma cadeia JSON. Este comando serializa os dados em JSON, realiza a ação inversa do comando JSON Parse.

Passe os dados a serializar em valor. Se podem expressar em forma escalar (cadeia, número, data ou hora) ou por meio de um objeto 4D (ou um array de objetos).

No caso de um objeto, que pode incluir todo tipo de valores (ver o parágrafo Tipos de dados JSON). O formato JSON deve respeitar as seguintes regras:

  • Os valores de tipo cadeia devem ir entre aspas. Todos os caracteres Unicode podem ser usados exceto os caracteres especiais que devem ser precedidos por uma barra oblíqua invertida.
  • Números: intervalo ±10.421e±10
  • Booleano: cadeias "true " ou " false"
  • Ponteiros a um campo, variável ou array (o ponteiro se avalia no momento do stringify)
  • Data: tipo de texto
  • Hora: tipo real

Pode passar o parâmetro opcional * com o propósito de incluir caracteres com formato na cadeia resultante. Esta opção melhora a apresentação dos dados JSON (pretty formatting).

Conversão 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 a meia noite

Conversão de uma cadeia que contém caracteres especiais:

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

Exemplo utilizando um ponteiro em uma variável:

 C_OBJECT($MyTestVar)
 C_TEXT($name ;$jsonstring )
 OB SET($MyTestVar;"name";->$name// definição do objeto
  // $MyTestVar= {"name":"->$name"}
 
 $jsonstring :=JSON Stringify($MyTestVar)
  // $jsonstring ="{"name":""}"
  //...
 
 $name:="Smith"
 $jsonstring :=JSON Stringify($MyTestVar)
  //$jsonstring = "{"name" : "Smith"}"

Serialização de um 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"}"

Exemplos de serialização de um objeto 4D com e sem o 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}

A vantagem deste formato é clara quando o JSON se mostra em uma área web:

  • Formato comum:
  • Formato melhorado:



Ver também 

JSON Parse
JSON Stringify array

 
PROPRIEDADES 

Produto: 4D
Tema: JSON
Número 1217

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)