4D v16.3

Présentation des commandes JSON

Accueil

 
4D v16.3
Présentation des commandes JSON

Présentation des commandes JSON  


 

 

Les commandes JSON permettent de générer et de parser (analyser) des objets de langage au format JSON. Le format JSON rend notamment possible l’accès aux bases 4D (structure et données) via un navigateur Web. 

La prise en charge d’objets structurés est une nouveauté majeure du langage de 4D v14, destinée à faciliter l’échange de données structurées. Les commandes du thème "JSON" permettent à 4D de manipuler directement des objets JSON. Toutefois, le programme peut également manipuler des objets "natifs" (dont la structure est inspirée du JSON), permettant des échanges vers tout type de langage. Pour plus d’informations, reportez-vous au chapitre Objets (Langage).

"JSON (JavaScript Object Notation) est un format de données textuelles, générique, dérivé de la notation des objets du langage ECMAScript." (source : Wikipédia). JSON est un format indépendant de tout autre langage, mais utilise des conventions qui sont familières aux développeurs C++ ou JavaScript, Perl, etc. JSON est un format particulièrement adapté à l’échange de données.

Ce paragraphe résume les principes de notation mis en oeuvre dans JSON. Pour une description complète de ce format, veuillez vous reporter au site www.json.org/json-fr.html.

La syntaxe JSON est basée sur les principes suivants :

  • les données sont des paires nom/valeur,
  • les données sont séparées par des virgules,
  • les objets sont définis par des accolades {},
  • les tableaux sont définis par des crochets [ ].

Les données JSON sont exprimées sous forme de paires nom/valeur (ou clé/valeur). Une paire nom/valeur contient un nom de champ (entre guillemets), suivi de deux-points, suivi d’une valeur. Par exemple :

"firstName":"John"

Pour information, cet exemple équivaut en JavaScript à :

firstName="John"

Attention, les noms de propriétés sont diacritiques et tiennent compte de la casse. Si vous écrivez "FirstName" au lieu de "firstName", vous obtenez une nouvelle paire name/valeur.

Les types de valeurs suivants sont pris en charge dans JSON :

TypeDescriptionCommentaire
chaîneTout caractère Unicode excepté " et \
Les valeurs, comme les noms de propriétés, sont encadrées de ", par exemple "ville":"Paris"
\ est utilisé pour les caractères de contrôle :
\" = guillemets
\\ = barre oblique inversée
\/ = barre oblique
\b = retour arrière
\f = formfeed
\n = retour ligne
\r = retour chariot
\t = tabulation
\u = quatre chiffres hexadécimaux
nombreEntier ou nombre à virgule flottanteNombres semblables au C ou au Java sauf que les formats octal et hexadécimal ne sont pas utilisés
objet{ }
tableau[ ]
booléentrue ou false
nullnull

Les objets JSON sont définis par des accolades. Ils peuvent contenir un nombre indéfini de paires noms/valeurs, par exemple : 

{ "firstName":"John" , "lastName":"Doe" }

Les objets JSON peuvent être stockés et manipulés dans 4D via les champs et variables objet (C_OBJECT).

Les tableaux JSON sont définis par des crochets. Un tableau peut contenir un nombre indéfini d’objets :

{
    "employees": [
        { "firstName":"John" , "lastName":"Doe" },
        { "firstName":"Anna" , "lastName":"Smith" },
        { "firstName":"Peter" , "lastName":"Jones" }
    ]
}

Les conversions des dates 4D vers et depuis JSON tiennent compte par défaut du fuseau horaire (timezone) de la machine sur laquelle elles ont eu lieu (conformité JavaScript). Par exemple, en France (GMT+2), la conversion de !23/08/2013! donne "2013-08-22T22:00:00Z" et inversement. 

Vous pouvez modifier ce fonctionnement et ne pas tenir compte du fuseau horaire, lors de la mise en place de procédures d’exportation par exemple, à l’aide de la commande SET DATABASE PARAMETER

Pour plus d’informations sur la conversion des dates 4D/JSON, reportez-vous au paragraphe Conversion des dates JavaScript.



Voir aussi  

Objets (Langage)

 
PROPRIÉTÉS 

Produit : 4D
Thème : JSON

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

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