Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20.6
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_OBJET).

Les tableaux JSON sont définis par des crochets. Un tableau peut contenir un nombre indéfini d’éléments de divers types :

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

Les tableaux JSON peuvent être stockés et manipulés dans 4D via les variables de type collection (C_COLLECTION).

4D prend en charge les pointeurs JSON. Un pointeur JSON est une chaîne qui peut être utilisée pour accéder à une valeur particulière de clé ou de champ parmi la totalité du document JSON. Par convention, un URI contenant un pointeur JSON doit être placé dans une propriété d'objet JSON nommée "$ref".

{
   "$ref":<path>#<json_pointer>
}

Les pointeurs JSON sont résolus soit en appelant la commande JSON Resoudre pointeurs, soit automatiquement lors de l'utilisation des Formulaires dynamiques.

Pour plus d'informations, veuillez vous reporter à la description de la commande JSON Resoudre pointeurs.

Les conversions des dates 4D vers et depuis des chaînes 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:000Z" 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 FIXER PARAMETRE BASE (sélecteur Dates dans les objets). 

Note : A compter de 4D v16 R6, les chaînes date JSON au format "YYYY-MM-DD" peuvent également être prises en charge. Pour plus d'informations, veuillez vous reporter à l'option "Utiliser le type date au lieu du format date ISO dans les objets" dans la Page Compatibilité.

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



Voir aussi  

Objets (Langage)

 
PROPRIÉTÉS 

Produit : 4D
Thème : JSON
Nom intl. : Overview of JSON commands

 
PAGE CONTENTS 
 
HISTORIQUE 

Modifié : 4D v16 R5

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v20)
4D - Langage ( 4D v20.1)
4D - Langage ( 4D v20.2)
4D - Langage ( 4D v20.3)
4D - Langage ( 4D v20.4)
4D - Langage ( 4D v20.5)
4D - Langage ( 4D v20.6)