Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
JSON Stringify
|
JSON Stringify ( valeur {; *} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
valeur | Objet, Varié |
![]() |
Données à convertir en chaîne JSON | |||||
* | Opérateur |
![]() |
Améliorer la présentation | |||||
Résultat | Texte |
![]() |
Chaîne contenant le texte JSON sérialisé | |||||
La commande JSON Stringify convertit le paramètre valeur en une chaîne JSON. Cette commande effectue l’action inverse de la commande JSON Parse.
Passez dans valeur les données à sérialiser. Elles peuvent être exprimées sous forme scalaire (chaîne, numérique, date ou heure) ou via un objet 4D ou une collection.
Note : Les dates 4D seront converties au format "yyyy-mm-dd" ou "YYYY-MM-DDThh:mm:sssZ" en fonction du paramétrage courant de la base (voir l'option "Utiliser le type date au lieu du format date ISO dans les objets" dans la Page Compatibilité).
Dans le cas d’un objet ou d'une collection, vous pouvez inclure tout type de valeurs (cf. paragraphe Types de données JSON), en respectant les règles suivantes du JSON :
Vous pouvez passer le paramètre optionnel * afin d’inclure des caractères de formatage dans la chaîne résultante. Cette option permet d’améliorer la présentation des données JSON (pretty formatting).
Conversions de valeurs scalaires :
$vc:=JSON Stringify("Saperlipopette") // "Saperlipopette"
$vel:=JSON Stringify(120) // "120"
$vh:=JSON Stringify(?20:00:00?) // "72000" secondes depuis minuit
SET DATABASE PARAMETER(Heures dans objets;Heures en milliseconds)
$vhms:=JSON Stringify(?20:00:00?) // "72000000" millisecondes depuis minuit
$vd:=JSON Stringify(!28/08/2013!) // "2013-08-27T22:00:000Z" (fuseau horaire Paris)
SET DATABASE PARAMETER(Dates dans objets;String type without time zone)
$vdd:=JSON Stringify(!28/08/2013!) // "2013-08-28T00:00:00.000Z"
Conversion d’une chaîne contenant des caractères spéciaux :
$s:=JSON Stringify("{\"name\":\"john\"}")
// $s="{\\"name\\":\\"john\\"}"
$p:=JSON Parse($s)
// $p={"name":"john"}
Exemples de sérialisation d’un objet 4D avec et sans le paramètre * :
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}
L’intérêt de ce formatage apparaît clairement lorsque le JSON est représenté dans une zone Web :
Exemple utilisant un pointeur vers une variable :
C_OBJECT($MaVarTest)
C_TEXT($name ;$jsonstring )
OB SET($MaVarTest;"name";->$name) // définition de l’objet
// $MaVarTest = {"name":"->$name"}
$jsonstring :=JSON Stringify($MaVarTest)
// $jsonstring ="{"name":""}"
//...
$name:="Smith"
$jsonstring :=JSON Stringify($MaVarTest)
//$jsonstring = "{"name" : "Smith"}"
Sérialisation d’un objet 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"}"
Sérialisation d'un objet 4D contenant une valeur de date (Fuseau horaire de Paris). La chaîne résultante dépend du paramétrage courant 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"
Note : Pour plus d'informations sur cette option, reportez-vous à la Page Compatibilité.
Conversion d'une collection (fuseau horaire Paris). La chaîne résultante dépend du paramétrage courant de la base.
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]"
Note : Pour plus d'informations sur cette option, reportez-vous à la Page Compatibilité.
Produit : 4D
Thème : JSON
Numéro :
1217
Créé : 4D v14
Modifié : 4D v16 R4
Modifié : 4D v16 R6
4D - Langage ( 4D v20 R7)