Objets et propriétés

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Manuel de l'utilisateur et référence > JSON, Schéma JSON > Mode Schéma JSON >

Objets et propriétés

Un objet est contenu dans des accolades et mappe une clé vers une valeur, comme ceci : "MyKey": Value. La clé doit toujours être une chaîne et doit donc toujours être contenue dans des guillemets. La valeur peut être de toute type de données JSON. Chaque paire key:value est connue en tant qu'une propriété de l'objet (voir capture d'écran ci-dessous).

 

Voici un exemple d'un objet instancié comportant trois propriétés :

 

    {

      "emailtype": "home",

      "emailaddress": "contact01.home@altova.com",

      "citycode": 22

    }

 

Le schéma pour l'objet ressemblerait à cela dans le Mode Design :

JSONObject01

Veuillez noter :

 

Chacune des propriétés doit être présente dans l'instance. Cela est indiqué par les bordures pleines des propriétés. Si une propriété est optionnelle, la bordure sera en tirets. Vous pouvez définir si une propriété est requise ou optionnelle dans le menu contextuel de la propriété ou par le biais de l'assistant à la saisie Détails.
L'ordre dans lequel les propriétés doivent avoir lieu dans l'instance n'est pas, et ne peut pas être, défini dans le schéma. Cela signifie que l'ordre dans lequel les propriétés sont définies dans le schéma n'a pas d'importance.
Le carré bleu contenu entre des crochets signifie une propriété (par rapport à une propriété de motif ou un caractère générique de propriété, qui sont tous deux symbolisés par d'autres symboles ; voir ci-dessous).
Le type d'une propriété peut être édité en double-cliquant le type dans le diagramme et en sélectionnant une option depuis la liste déroulante qui apparaît. En alternative, le type peut être sélectionné dans l'assistant à la saisie Détails.
La valeur de contrainte de la propriété emailaddress est définie dans l'assistant à la saisie Contraintes.

 

Propriétés, propriétés de motifs et caractères génériques de propriétés

Un objet peut avoir des propriétés, des propriétés de motif et des caractères génériques de propriété. Celles-ci peuvent être ajoutées à l'objet par le biais de menus contextuels : (i) de l'objet, (ii) de la fenêtre jaune de propriétés (cliquer avec la touche de droite sur le titre Propriétés de la fenêtre), et (iii) des propriétés individuelles. Les propriétés ont été décrites ci-dessus. Nous allons maintenant nous pencher sur les propriétés de motif et les caractères génériques de propriété.

 

Une propriété de motif (capture d'écran ci-dessous) définit le nom de la propriété en tant qu'expression régulière. Dans la capture d'écran ci-dessous, par exemple, l'expression régulière spécifie que la propriété doit : (i) avoir un nom qui commence avec un tiret bas, et (ii) avoir une booléenne en tant que sa valeur. Il n'y a pas de contrainte d'exigence pour une propriété de motif. Vous pouvez ajouter autant de propriétés de motif que vous le souhaitez. Veuillez noter l'icône pour les propriétés de motif.

JSONObjectPatternProp01

Un caractère générique de propriété (capture d'écran ci-dessous) spécifie que tout nombre de propriétés peut se produire en plus des autres propriétés du set de propriétés de l'objet. Néanmoins, le caractère générique peut définir un type pour ces occurrences. La capture d'écran ci-dessous à gauche montre un caractère générique de propriété qui définit des propriétés avec n'importe quel nom mais possédant des valeurs numériques. Il ne peut y avoir qu'un caractère générique de propriété par objet. Si le caractère générique est défini sur le type Tout, néanmoins, vous pourrez définir des contraintes pour chaque type dans l'assistant à la saisie Contraintes. Veuillez noter l'icône pour les caractères génériques de propriété.

JSONObjectPropertyWildcard

Note :Il n'existe pas de paramètres d'occurrence minimum ou maximum pour une propriété de motif ou un caractère générique de propriété. Voir la section concernant la validation de propriété pour comprendre le fonctionnement.

 

Comment sont validées les propriétés

Lorsqu'une propriété est rencontrée dans l'instance, elle est validée comme suit :

 

1.Le nom de la propriété est contrôlé dans le schéma par rapport à toutes les propriétés nommées de cet objet.
2.Si aucune correspondance n'est trouvée, le nom est contrôlé par rapport à toutes les propriétés de motif contenues dans l'ensemble de propriété de l'objet.
3.Si aucune concordance n'est toujours pas trouvée, le caractère générique est invoqué s'il existe.
4.Si aucune concordance n'est toujours pas trouvée pour le nom, une erreur de validité est rapportée. Si le nom correspond à celui d'une propriété ou d'une propriété de motif, ou si un caractère générique existe, alors la valeur est contrôlée par rapport à la valeur de la définition de la propriété correspondante.
5.Si l'instance de la valeur correspond au type et aux contraintes de la définition de propriété correspondante, la propriété est valide. Sinon elle est invalide.

 

Exemple

La capture d'écran ci-dessous définit un objet qui :

 

doit avoir trois propriétés nommées emailtype, emailaddress, et citycode
peut avoir une ou plusieurs propriétés avec un nom qui commence avec un tiret bas et une valeur qui est booléenne (voir la propriété de motif dans la capture d'écran ci-dessous)
peut avoir une ou plusieurs propriétés avec n'importe quel nom et valeur

JSONObjectExample

 


© 2018 Altova GmbH