4D v16.3

JSON Stringify

Accueil

 
4D v16.3
JSON Stringify

JSON Stringify 


 

JSON Stringify ( valeur {; *} ) -> Résultat 
Paramètre Type   Description
valeur  Objet, Tableau objet, Chaîne, Réel, Date, Heure in Données à convertir en chaîne JSON
Opérateur in Améliorer la présentation
Résultat  Texte in Chaîne contenant le texte JSON sérialisé

La commande JSON Stringify convertit le paramètre valeur en une chaîne JSON. Cette commande sérialise des données en JSON ; elle 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 un tableau d’objets). 

Dans le cas d’un objet, vous pouvez inclure tout type de valeurs (cf. paragraphe Types de données JSON). Le formatage JSON doit respecter les règles suivantes :

  • les valeurs de type chaîne doivent être encadrées de guillemets. Tous les caractères Unicode peuvent être utilisés à l’exception des caractères spéciaux, devant être précédés par une barre oblique inversée.
  • numérique : intervalle ±10.421e±10
  • booléen : chaîne "true" ou "false"
  • pointeur vers un champ, une variable ou un tableau (le pointeur est évalué au moment du stringify)
  • date : type texte
  • heure : type réel

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"
 $vd:=JSON Stringify(!28/08/2013!) //  "2013-08-27T22:00:00Z"
 $vh:=JSON Stringify(?20:00:00?) // "72000000" secondes depuis minuit

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

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

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 :

  • Formatage standard :
  • Formatage amélioré :



Voir aussi  

JSON Parse
JSON Stringify array

 
PROPRIÉTÉS 

Produit : 4D
Thème : JSON
Numéro : 1217

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
HISTORIQUE 

Créé : 4D v14

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)