JsonTreeReader¶
Description¶
Analyse JSON en objets d’enregistrement individuels. Bien que le lecteur s’attende à ce que chaque enregistrement soit bien formé (JSON), le contenu d’un FlowFile peut consister en de nombreux enregistrements, chacun sous la forme d’un tableau JSON ou d’un objet JSON bien formé, avec des espaces facultatifs entre eux, comme le format courantJSON par ligne. Si un tableau est rencontré, chaque élément de ce tableau sera traité comme un enregistrement distinct. Si le schéma configuré contient un champ qui n’est pas présent dans le JSON, une valeur nulle sera utilisée. Si le JSON contient un champ qui n’est pas présent dans le schéma, ce champ sera ignoré. Voir l’utilisation du Controller Service pour plus d’informations et d’exemples.
Propriétés¶
Dans la liste ci-dessous, les propriétés requises sont signalées par un astérisque (*). Les autres propriétés sont considérées comme facultatives. La table indique également les valeurs par défaut et précise si une propriété prend en charge le langage d’expression NiFi.
Nom d’affichage |
Nom d’API |
Valeur par défaut |
Valeurs autorisées |
Description |
---|---|---|---|---|
Autoriser les commentaires * |
Autoriser les commentaires |
false |
|
Autoriser ou non les commentaires lors de l’analyse du document JSON |
Format de date |
Format de date |
Spécifie le format à utiliser lors de la lecture/écriture des champs de date. S’ils ne sont pas spécifiés, les champs Date seront considérés comme étant le nombre de millisecondes écoulées depuis l’époque (minuit, 1er janvier 1970 GMT). Si elle est spécifiée, la valeur doit correspondre au format Java java.time.format.DateTimeFormatter (par exemple, jj/MM/aaaa pour un mois à deux chiffres, suivi d’un jour à deux chiffres, suivi d’une année à quatre chiffres, tous séparés par des caractères “/”, comme dans 01/01/2017). |
||
Longueur maximale de la chaîne * |
Longueur maximale de la chaîne |
20 MB |
Longueur maximale autorisée d’une valeur de chaîne lors de l’analyse du document JSON |
|
Format de l’heure |
Format de l’heure |
Spécifie le format à utiliser lors de la lecture/écriture des champs Time. S’ils ne sont pas spécifiés, les champs Time seront considérés comme étant le nombre de millisecondes depuis l’époque (minuit, 1er janvier 1970 GMT). Si elle est spécifiée, la valeur doit correspondre au format Java java.time.format.DateTimeFormatter (par exemple, HH:mm:ss pour une heure à deux chiffres au format 24 heures, suivie d’une minute à deux chiffres, suivie d’une seconde à deux chiffres, le tout séparé par des caractères :, comme dans 18:04:15). |
||
Timestamp Format |
Timestamp Format |
Spécifie le format à utiliser lors de la lecture/écriture des champs horodatage. S’ils ne sont pas spécifiés, les champs d’horodatage seront considérés comme étant le nombre de millisecondes depuis l’époque (minuit, 1er janvier 1970 GMT). Si elle est spécifiée, la valeur doit correspondre au format Java java.time.format.DateTimeFormatter (par exemple, jj/MM/aaaa HH:mm:ss pour un mois à deux chiffres, suivi d’un jour à deux chiffres, suivi d’une année à quatre chiffres, tous séparés par des caractères / ; puis suivi d’une heure à deux chiffres au format 24 heures, suivie d’une minute à deux chiffres, suivie d’une seconde à deux chiffres, tous séparés par des caractères :, comme dans 01/01/2017 18:04:15). |
||
Stratégie d’accès au schéma * |
schema-access-strategy |
infer-schema |
|
Indique comment obtenir le schéma à utiliser pour interpréter les données. |
Stratégie d’application du schéma * |
schema-application-strategy |
SELECTED_PART |
|
Indique si le schéma est défini pour l’ensemble du JSON ou pour la partie sélectionnée à partir de Nom du champ de départ. |
Branche du schéma |
schema-branch |
Spécifie le nom de la branche à utiliser lors de la recherche du schéma dans la propriété Schema Registry. Si le registre de schémas choisi ne prend pas en charge la ramification, cette valeur sera ignorée. |
||
Cache d’inférence de schéma |
schema-inference-cache |
Spécifie un cache de schéma à utiliser lors de la déduction du schéma. S’il n’est pas renseigné, le schéma sera déduit à chaque fois. Toutefois, si un cache est spécifié, le cache sera d’abord consulté et si le schéma applicable peut être trouvé, il sera utilisé au lieu de déduire le schéma. |
||
Nom de schéma |
schema-name |
${schema.name} |
Spécifie le nom du schéma à rechercher dans la propriété Schema Registry |
|
Lecteur de référence de schéma * |
schema-reference-reader |
Mise en œuvre du service responsable de la lecture des attributs ou du contenu de FlowFile pour déterminer l’identifiant de référence du schéma |
||
Registre des schémas |
schema-registry |
Spécifie le Controller Service à utiliser pour le registre des schémas |
||
Texte du schéma |
schema-text |
${avro.schema} |
Le texte d’un schéma formaté par Avro |
|
Version du schéma |
schema-version |
Spécifie la version du schéma à rechercher dans le registre des schémas. Si elle n’est pas spécifiée, c’est la dernière version du schéma qui sera récupérée. |
||
Nom du champ de départ |
starting-field-name |
Passe au champ imbriqué JSON spécifié (tableau ou objet) pour commencer le traitement. |
||
Stratégie pour le champ de départ * |
starting-field-strategy |
ROOT_NODE |
|
Commencez le traitement à partir du nœud racine ou d’un nœud imbriqué spécifié. |
Gestion de l’État¶
Ce composant ne stocke pas d’état.
Restreint¶
Cette composante n’est pas limitée.
Considérations relatives aux ressources du système¶
Ce composant ne précise pas les ressources du système à prendre en compte.