Aller au contenu principal
Version: Next

JSON Parse

JSON Parse ( chaîneJSON {; type}{; *} ) -> Résultat

ParamètreTypeDescription
chaîneJSONChaîne🡒Chaîne en JSON à analyser
typeEntier long🡒Type dans lequel convertir les valeurs
*Opérateur🡒Ajouter la ligne et la position de chaque propriété si la valeur retournée est un objet
RésultatObjet, Varié🡐Valeurs extraites de la chaîne JSON

Description

__symbols:{//description de l'objet
   myAtt.mySubAtt...:{ //chemin de la propriété
      line:10, //numéro de la ligne de la propriété
      offset:35 //position de la propriété à partir du début de la ligne
      }
   }

Exemple 1

Exemples de conversions simples :

 var $r : Real
 $r:=JSON Parse("42.17") //$r = 42,17 (réel)
 
 var $el : Integer
 $el:=JSON Parse("120.13";Is longint) //$el=120
 
 var $t : Text
 $t:=JSON Parse("\"Année 42\"";Is text) //$t="Année 42" (texte)
 
 var $o : Object
 $o:=JSON Parse("{\"name\":\"jean\"}")
     // $o = {"name":"jean"} (objet 4D)
 
 var $b : Boolean
 $b:=JSON Parse("{\"manager\":true}";Is Boolean) //$b=vrai
 
 var $h : Time
 $h:=JSON Parse("5120";Is time) //$h=01:25:20

Exemple 2

Exemples de conversions de données de type date :

 $test:=JSON Parse("\"1990-12-25T12:00:00Z\"")
     // $test=1990-12-25T12:00:000Z
 var $date;$date2;$date3 : Date
 $date:=JSON Parse("\"2008-01-01T12:00:000Z\"";Is date)
  //$date=01/01/08
 $date2:=JSON Parse("\"2017-07-13T23:00:00.000Z\"";Is date)
  //$date2=14/07/17 (fuseau horaire Paris)
 SET DATABASE PARAMETER(Dates dans objets;String type without time zone)
 $date3:=JSON Parse("\"2017-07-13T23:00:00.000Z\"";Is date)
  //$date3=13/07/17

Exemple 3

Si le paramétrage courant de stockage de date est "type date", vous pouvez écrire :

 var $o : Object
 var $json : Text
 var $birthday : Date
 
 $json:="{\"name\":\"Marcus\",\"birthday\":\"2017-10-16\"}"
 $o:=JSON Parse($json)
 $birthday:=$o.birthday
  //$birthday=16/10/17

Note : Pour plus d'informations sur ce paramétrage, reportez-vous à l'option "Utiliser le type date au lieu du format date ISO dans les objets" dans le Page Compatibilité.

Exemple 4

Cet exemple montre l’utilisation conjointe des commandes JSON Stringify et JSON Parse :

 var $JSONContact : Text
 var $Contact;$Contact2 : Object
 $Contact:=New object("name";"Monroe";"firstname";"Alan")
 
  // JSON Stringify : conversion d’un objet JSON en chaîne JSON
 $JSONContact:=JSON Stringify($Contact)
 
  // JSON Parse : conversion d’une chaîne JSON en nouvel objet
 $Contact2:=JSON Parse($JSONContact)

Exemple 5

Vous souhaitez créer une collection 4D à partir d'un tableau JSON :

 var $myCol : Collection
 $myCol:=JSON Parse("[\"Lundi\",10,\"Mardi\",11,\"Mercredi\",12,false]")

Exemple 6

{
    "alpha": 4552,
    "beta": [
        {
            "echo": 45,
            "delta": "text1"
        },
        {
            "echo": 52,
            "golf": "text2"
        }
    ]
}

Voir aussi

JSON PARSE ARRAY
JSON Stringify
JSON Validate
Types champs et variables