Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
JSON Stringify
|
JSON Stringify ( valor {; *} ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
valor | Objeto, Mixed |
![]() |
Dados a converter em cadeia JSON | |||||
* | Operador |
![]() |
Melhorar o formato | |||||
Resultado | Texto |
![]() |
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 coleção.
Nota: datas 4D são convertidas em formatos "aaaa-mm-dd" ou "AAAA-MM-DDThh:mm:sssZ" de acordo com a configuração atual de data do banco de dados (ver a opção "Use date type instead of ISO date format in objects" em Página Compatibilidade).
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:
Notas:
Conversão de valores escalares:
$vc:=JSON Stringify("Eureka!") // "Eureka!"
$vel:=JSON Stringify(120) // "120"
$vh:=JSON Stringify(?20:00:00?) // "72000" segundos desde a meia noite
SET DATABASE PARAMETER(Times inside objects;Times in milliseconds)
$vhms:=JSON Stringify(?20:00:00?) // "72000000" millissegundos desde a meia noite
$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"
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"}
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:
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"}"
Serialização de um objeto 4D contendo um valor de data (fuso horário de Paris). A string resultante depende das configurações atuais de data do banco de dados.
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"
Note: Para saber mais, veja Página Compatibilidade.
Conversão de uma coleção (fuso horário de Paris). A string resultante depende das configurações atuais de data no banco de dados.
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 saber mais sobre essa opção, veja Página Compatibilidade.
Produto: 4D
Tema: JSON
Número
1217
Criado por: 4D v14
Modificado: 4D v16 R4
Modificado: 4D v16 R6
Manual de linguagem 4D ( 4D v20 R7)