JSON
Site web Altova : mappage JSON
JSON (JavaScript Object Notation) est un format de données très populaire pour le stockage et le transport de données. Dans MapForce Enterprise Edition, vous pouvez mapper des données depuis tout format pris en charge par MapForce vers JSON, et vice-versa. Vous pouvez aussi sérialiser des données JSON en tant que string (par exemple, pour écrire dans une base de données), ou parser un string JSON dans une structure JSON, avec l'aide de composants Parse/Serialize. Pour plus d'information, voir Parser et sérialiser des strings.
Pour utiliser des fichiers JSON dans des mappage, le langage de mappage doit être défini sur : Built-in, C# ou Java. Pour plus d'informations, voir Langages de transformation. |
Comme les autres types de composants pris en charge par MapForce, un fichier de schéma est nécessaire avant de pouvoir écrire ou lire des données JSON. Si vous n'avez pas de fichier de schéma, MapForce peut en générer un automatiquement. Voir Ajouter des fichiers JSON en tant que composants de mappage. Si vous fournissez un fichier de schéma JSON qui n'est pas généré par MapForce, alors MapForce attendra une version Draft 04, Draft 06, Draft 07, Draft 2019-09 ou aucune version.
L'exemple suivant montre comment une structure JSON apparaît dans MapForce :
Composant JSON dans MapForce
Comme illustré ci-dessus, la structure des nœuds dans le composant JSON reflète la structure du fichier d'instance JSON. Les types de JSON de base sont représentés par convention dans MapForce comme indiqué ci-dessous.
Type | Représentation MapForce |
---|---|
Array | |
Boolean | |
Null | |
Number or integer | |
Object | |
String |
Il existe aussi des cas particuliers décrits ci-dessous :
Cas | Description |
additionalProperties, patternProperties | Le nœud apparaît dans le composant JSON sous tout objet dont la propriété additionalProperties est true ou non présente dans le schéma. Il vous permet de mapper depuis ou vers des propriétés qui qui ne sont pas explicitement recensées dans le schéma (voir aussi Exemple : Mapper depuis JSON vers CSV).
Ce nœud peut aussi apparaître pour des objets ayant la propriété patternProperties. |
Subtypes | Le schéma JSON permet de définir des sous-types pour des objets et des arrays (anyOf, allOf, oneOf). MapForce affiche ces sous-types en utilisant des nœuds de structure spéciale ( ) qui ne présentent pas de représentation directe dans le fichier d'instance JSON.
Si votre mappage lit à partir d'un fichier JSON, ces nœuds de sous-type fournissent une valeur uniquement si la valeur d'entrée actuelle est valide conformément au schéma de sous-type.
Si votre mappage écrit sur un fichier JSON, veuillez vous assurer que vous choisissez le sous-type correct à remplir. Le remplissage de plusieurs sous-types peut entraîner la duplication des propriétés d'objet et donc, peut entraîner des fichiers JSON de sortie invalides. |
Multiple types at the same location | Le schéma JSON permet à plusieurs types de se produire dans le même endroit. Dans ces cas, le composant MapForce affiche des nœuds de structure séparés pour tous les types de base qui peuvent se produire à cet endroit. |
Type names | MapForce affiche les propriétés title et description des types dans le schéma JSON dans les champs "type" et "annotation", si ceux-ci sont disponibles. Si title est absent, MapForce peut aussi utiliser une partie d'URI depuis la propriété $ref en tant que le nom de type. |
Arrays containing mixed item types | Si un array a plusieurs types différents d'items dans le schéma JSON (par exemple, aussi bien les strings et les nombres), MapForce affiche un nœud "item" pour chaque type d'item. Lors de la rédaction dans un fichier JSON, cela vous permet de créer des arrays qui contient des items de types différents. |
Arrays defined as tuples | Si un array a des items dont le type est attribué par une position dans le schéma JSON, MapForce affiche l'index basé sur zéro de l'item en tant que nœuds de structure séparés (for example item[0], item[1], etc. Lors de l'écriture dans un fichier JSON, cela vous permet de spécifier le type de chaque item individuel dans l'array par son index à base zéro. |