JSONFragmenter
Extrait des portions de JSON (Java Script Object Notation) au format texte dans de nouveaux attributs.
Requêtes JSON
Une requête JSON est un mécanisme simple permettant de faire référence à des valeurs dans un document JSON. Une requête se compose d'une ou plusieurs expressions, séparées par un opérateur +. Il existe trois types d'expressions : les expressions de structure JSON, les expressions de propriété JSON et les expressions de chaîne de caractères.
Structure d'expression JSON
Une expression de structure JSON peut faire référence à des valeurs dans un document JSON. L'élément JSON le plus externe, qui doit être un tableau ou un objet, est toujours désigné par le terme json, et ce terme doit apparaître au début de chaque expression de structure JSON. Les éléments enfants peuvent être désignés à l'aide d'opérateurs d'indexation entre crochets de type JavaScript. Par exemple, si l'élément le plus à l'extérieur est un tableau, le premier élément du tableau peut être désigné par l'expression json[0], le deuxième élément peut être désigné par l'expression json[1], et ainsi de suite. De même, si l'élément JSON le plus externe est un objet, avec les clés "nom" et "adresse", les valeurs de ces clés peuvent être désignées respectivement par les expressions json["nom"] et json["adresse"].
Ces opérateurs d'indexation peuvent être mis en cascade. Par exemple, si l'élément JSON le plus externe est un objet avec une clé et "adresse" dont la valeur est un objet contenant les clés "ville" et "province", alors ces valeurs peuvent être référencées par les expressions json["adresse"]["ville"] et json["adresse"]["province"].
Pour faire référence à toutes les valeurs d'un tableau ou d'un objet, on peut utiliser un indice joker *. Par exemple, si l'élément JSON le plus externe est un tableau, l'expression json[*] fait référence à chaque élément du tableau.
Expression de propriété JSON
Une expression de propriété est une expression de structure telle que décrite ci-dessus, suivie d'un opérateur . (point) et d'un nom de propriété. Actuellement, les seules propriétés prises en charge sont le type et la taille. La propriété type renvoie le type de la valeur JSON à laquelle fait référence l'expression de structure JSON. Par exemple, si l'élément JSON le plus à l'extérieur est un tableau et que le premier élément du tableau est une chaîne, l'expression json[0].type aura pour valeur string. La propriété size, qui ne peut être appliquée qu'à un tableau, renvoie le nombre d'éléments du tableau.
Expressions chaînes littérales
Une expression chaîne littérale est simplement une chaîne entre guillemets, telles que "ceci est une expression de chaîne littérale".
Configuration
Ports de sortie
Pour chaque entité nouvellement créée, l'attribut identifié par le paramètre Attribut résultat contient le texte JSON issu de la requête JSON.
L'attribut json_type contient le type JSON du texte (objet, tableau, chaîne, etc) et l'attribut json_index contient la clé de l'objet ou l'index du tableau de la valeur JSON.
Si la requête JSON ne peut être correctement exécutée, un message est enregistré dans le log et la conversion continue.
Même Rejeter les entités qui ne produisent aucun fragment est défini sur Oui, les entités qui ne produisent aucun fragment ressortiront par ce port.
Les entités qui n'ont pas pu être traitées avec succès seront également envoyées par ce port. Cela se produit généralement lorsque l'attribut spécifié dans le paramètre Attribut JSON n'a pas de valeur, ou a une valeur qui n'est pas du JSON valide.
Paramètres
Input Source |
Permet de sélectionner entre une et deux options pour l'entrée JSON : Document JSON ou Fichier/URL |
Document JSON |
Le document JSON peut venir de n'importe quelle expression de chaîne de caractères, dont notamment des valeurs d'attributs et des paramètres de traitement. |
Fichier/URL |
Si sélectionné, la source JSON peut être lue depuis un fichier local à un chemin de fichier spécifié ou depuis internet via une URL spécifiée. |
Requête JSON |
Le paramètre Requête JSON fait référence aux valeurs JSON qui deviendront des nouvelles entités FME. Ce paramètre peut être saisi directement dans la zone de texte ou, si vous lisez JSON à partir d'un fichier ou d'une URL, en cliquant sur le bouton de navigation qui ouvre une boîte de dialogue contenant la structure du jeu de données JSON sous forme d'arbre. En sélectionnant une valeur dans l'arbre, le paramètre sera rempli avec la chaîne de requête appropriée pour transformer les valeurs sélectionnées en entités. Une requête JSON est un mécanisme permettant de faire référence à des valeurs à l'intérieur d'un texte JSON. La valeur JSON la plus externe, qui doit être un objet ou un tableau, est toujours désignée par le terme "json". Les valeurs contenues peuvent être référencées à l'aide d'opérateurs d'indexation entre crochets de type JavaScript. On peut faire référence à une valeur dans un tableau en utilisant sa position dans le tableau (par exemple, json[2] pour le troisième élément). On peut se référer à une valeur dans un objet en utilisant son nom de clé d'objet. Par exemple : json["key"] Toutes les valeurs d'un tableau ou d'un objet peuvent être désignées collectivement à l'aide d'un index joker. Par exemple : json[*] La requête utilisée par ce Transformer peut contenir plusieurs expressions, séparées par un opérateur '+'. Cela permet au Transformer de faire référence à des valeurs dans différentes zones du texte JSON. Par exemple : json["resultSet_1"][*] + json["resultSet_2"][*] Plus d'informations sur les requêtes JSON peuvent être trouvées dans la documentation sur JSONQueryFactory. |
Fragment en tant que Format |
Si le texte JSON est au format GeoJSON ou EsriJSON, vous pouvez sélectionner Fragmenter en tant que format vers GEOJSON ou ESRIJSON. Cela informera JSONQueryFactory que les entités GeoJSON ou ESRIJSON doivent être automatiquement reconnues et extraites des résultats de la requête. Le format par défaut, JSON, analyse le texte JSON comme du JSON brut. Si aucune entité GeoJSON ou ESRIJSON n'a été construite, un avertissement sera émis et le texte sera traité comme du JSON brut. |
Rejeter les entités qui ne produisent aucun fragment |
Si ce paramètre est défini sur Oui, les entités qui ne produisent aucun fragment ressortiront via le port <Rejected>. |
Attribut Résultat |
Si le JSONFragmenter est configuré pour lire JSON à partir d'un attribut d'entité, alors la sortie est automatiquement écrite dans l'attribut d'entrée. Toutefois, si le JSONFragmenter est configuré pour lire JSON à partir d'un fichier ou d'une URL, un attribut de sortie doit être sélectionné. Cela se fait dans le champ Attribut de résultat qui est activé lorsque la source d'entrée est définie sur Fichier/URL. L'attribut de sortie peut être sélectionné parmi les attributs d'entrée existants, les paramètres définis par l'utilisateur, ou un nouvel attribut peut également être créé. |
Aplatir les résultats de la requête dans des attributs |
Si la requête JSON produit un objet JSON, les clés peuvent être utilisées pour produire des attributs supplémentaires pour la ou les nouvelles entités en leur attribuant la valeur Oui. Si la requête JSON produit un tableau JSON et qu'une valeur est fournie au paramètre Préfixer les attributs avec, un attribut de liste sera créé, en utilisant le préfixe comme nom de liste et les valeurs du tableau JSON comme éléments de liste. Note Les attributs de liste ne sont pas accessibles à partir du schéma de sortie dans FME Workbench, sauf s'ils sont d'abord traités à l'aide d'un Transformer qui opère sur eux, comme ListExploder ou ListConcatenator. Il est également possible d'utiliser AttributeExposer.
|
Aplatir récursivement les objets/tableaux |
Lorsque le paramètre Résultat de la requête d'aplatissement dans les attributs a pour valeur Oui, ce paramètre contrôle les attributs qui sont créés. S'il a pour valeur Non, chaque clé d'objet JSON devient un attribut et la valeur JSON correspondante devient la valeur de l'attribut. Si ce paramètre a pour valeur Oui, seules les valeurs d'objets de types simples (entiers, chaînes de caractères, etc.) deviendront des valeurs d'attributs, tandis que les objets imbriqués et les tableaux seront aplatis de manière récursive. |
Préfixer les nouveaux attributs avec |
Si le paramètre Résultat de la requête d'aplatissement dans les attributs est défini sur Oui, le paramètre Préfixer les nouveaux attributs avec peut être utilisé pour fournir une chaîne de caractères avec laquelle préfixer les attribut nouvellement créés. Si le format sélectionné est GeoJSON ou ESRIJSON, les clés spécifiques au format ne seront pas ajoutées en tant qu'attributs, mais seront traitées par l'analyseur de format approprié. |
Attributs à exposer : |
Expose les attributs afin qu'ils puissent être utilisés ailleurs dans le traitement. Les noms des attributs peuvent être saisis directement ou fournis dans la fenêtre Entrer des valeurs pour les attributs à exposer, à laquelle on accède par le bouton "...", où le type de données peut également être spécifié. Pour plus d'informations sur les attributs exposés et non exposés, voir Comprendre les types d'entités et les attributs. |
Éditer les paramètres des Transformers
À l'aide d'un ensemble d'options de menu, les paramètres du Transformer peuvent être attribués en faisant référence à d'autres éléments de traitement. Des fonctions plus avancées, telles qu'un éditeur avancé et un éditeur arithmétique, sont également disponibles dans certains Transformers. Pour accéder à un menu de ces options, cliquez sur à côté du paramètre applicable. Pour plus d'informations, voir Options de menus et paramètres de Transformer.
Définir les valeurs
Il existe plusieurs façons de définir une valeur à utiliser dans un Transformer. La plus simple est de simplement taper une valeur ou une chaîne de caractères, qui peut inclure des fonctions de différents types comme des références d'attributs, des fonctions mathématiques et de chaînes de caractères, et des paramètres de traitement. Il existe un certain nombre d'outils et de raccourcis qui peuvent aider à construire des valeurs, généralement disponibles dans le menu contextuel déroulant adjacent au champ de valeur.
Utilisation de l'éditeur de texte
L'éditeur de texte fournit un moyen efficace de construire des chaînes de textes (dont les expressions régulières) à partir de données source diverses, telles que des attributs, des paramètres et des constantes, et le résultat est directement utilisé dans le paramètre.
Utilisation de l'éditeur arithmétique
L'éditeur arithmétique fournit un moyen simple de construire des expressions mathématiques à partir de plusieurs données source, telles que des attributs et des fonctions, et le résultat est directement utilisé dans un paramètre.
Valeur conditionnelle
Définit des valeurs selon un ou plusieurs tests.
Fenêtre de définition de conditions
Contenu
Les expressions et chaînes de caractères peuvent inclure des fonctions, caractères, paramètres et plus.
Lors du paramétrage des valeurs - qu'elles soient entrées directement dans un paramètre ou construites en utilisant l'un des éditeurs - les chaînes de caractères et les expressions contenant des fonctions Chaîne de caractères, Math, Date et heure ou Entité FME auront ces fonctions évaluées. Par conséquent, les noms de ces fonctions (sous la forme @<nom_de_fonction>) ne doivent pas être utilisés comme valeurs littérales de chaîne de caractères.
Ces fonctions manipulent les chaînes de caractères. | |
Caractères spéciaux |
Un ensemble de caractères de contrôle est disponible dans l'éditeur de texte. |
Plusieurs fonctions sont disponibles dans les deux éditeurs. | |
Fonctions Date/heure | Les fonctions de dates et heures sont disponibles dans l'Editeur texte. |
Ces opérateur sont disponibles dans l'éditeur arithmétique. | |
Elles retournent des valeurs spécifiques aux entités. | |
Les paramètres FME et spécifiques au traitement peuvent être utilisés. | |
Créer et modifier un paramètre publié | Créer ses propres paramètres éditables. |
Options - Tables
Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.
Réordonner
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
|
Couper, Copier et Coller
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
Copier, copier et coller peuvent être utilisés au sein d'un Transformer ou entre Transfromers. |
Filtre
|
Commencez à taper une chaîne de caractères, et la matrice n'affichera que les lignes correspondant à ces caractères. Recherche dans toutes les colonnes. Cela n'affecte que l'affichage des attributs dans le Transformer - cela ne change pas les attributs qui sont sortis. |
Importer
|
Le bouton d'import remplit la table avec un jeu de nouveaux attributs lus depuis un jeu de données. L'application spécifique varie selon les Transformers. |
Réinitialiser/Rafraîchir
|
Réinitialise la table à son état initial, et peut fournir des options additionnelles pour supprimer des entrées invalides. Le comportement varie d'un Transformer à l'autre. |
Note : Tous les outils ne sont pas disponibles dans tous les Transformers.
FME Community
FME Community est l'endroit où trouver des démos, des tutoriaux, des articles, des FAQ et bien plus encore. Obtenez des réponses à vos questions, apprenez des autres utilisateurs et suggérez, votez et commentez de nouvelles entités.
Voir tous les résultats à propos de ce Transformer sur FME Community.
Mots clefs : JSONExploder