JSONTODATA
Aperçu
L'application de workflow JSONTODATA vous permet d'analyser (« parse ») le contenu JSON dans des données de processus.
Mode de fonctionnement
L'application JSONTODATA nécessite le paramètre
JSON_CONTENT
ou le paramètreJSON_CONTENT_FILE
; ceux-ci correspondent au JSON à analyser.L'application supporte le langage de requête JSONPath (voir https://github.com/json-path/JsonPath), qui permet l'extraction de données spécifiques à partir du contenu JSON, similaire aux expressions XPath en XML.
Des logs d'application sont disponibles. Ceux-ci peuvent être spécifiés en définissant la valeur du paramètre
JsonToDatalLogLevel
dans le fichierweb.config
sur0
pour désactiver la journalisation,1
pour les logs d'erreur,2
pour des logs d'informations ou3
pour les logs de débogage; la valeur par défaut est0
.
Paramètres
Paramètre
Type
Direction
Description
JSON_CONTENT
TEXT
IN
Requête à exécuter
JSON_CONTENT_FILE
FILE
IN
Requête à exécuter, stockée dans un fichier
Mappage des paramètres
Utilisation de noms de paramètres simples
L'application supporte les paramètres OUT personnalisés pour mapper un contenu JSON simple.
📌 Exemple
Les paramètres suivants vous permettent de mapper le contenu JSON à différentes données de processus :
Paramètre
Type
Direction
Récupérer la valeur dans une donnée
Résultat
person.address.street
Text
OUT
DATA_STREET
160 Guy Street
person.address.zipcode
Text
OUT
DATA_ZIPCODE
J4G 1U4
person.age
Text
OUT
DATA_AGE
30
person.name
Text
OUT
DATA_NAME
John
Utilisation du langage de requête JSONPath
L'application supporte le langage de requête JSONPath, similaire aux expressions XPath en XML. Ce langage vous permet de récupérer des données spécifiques à partir d'un JSON. Voir https://github.com/json-path/JsonPath pour plus d'informations sur la syntaxe JSONPath.
📌 Exemple
Dans l'exemple ci-dessus, nous voulons obtenir les noms des petits-enfants de Charles âgés de plus de sept ans, et nous voulons également que ces noms soient séparés par un |
(à l'aide du paramètre IN APP_JSONPATH_DELIMITER
). En même temps, nous allons récupérer l'âge et la date de naissance d'Elizabeth. Pour obtenir ces informations, les paramètres suivants doivent être définis :
Paramètre
Type
Direction
Valeur IN
Valeur OUT
APP_JSONPATH_DELIMITER
Text
IN
|
PARAM1__JSONPATH
Text
INOUT
person.children[?(@.name == 'Charles')].children[*].children[?(@.age > 7)].name
donnée DATA1_VALUE
(la valeur sera : George|Charlotte
)
AGE__JSONPATH
Text
IN
$.person.age
AGE
Numeric
OUT
donnée AGE_VALUE
(la valeur sera : 85
)
DOB__JSONPATH
Text
IN
$.person.dob
DOB
DateTime
OUT
donnée DOB_VALUE
(la valeur sera : 1937-09-23T00:00:00Z
)
Dans le nom du paramètre
PARAM1__JSONPATH
, le nom dePARAM1
n'est pas pertinent, mais il doit être suivi du suffixe__JSONPATH
(deux traits de soulignement sont utilisés dans le suffixe).Pour récupérer une valeur dans une donnée de type Text , vous pouvez utiliser un seul paramètre en INOUT (par exemple, le paramètre
PARAM1__JSONPATH
comme ci-dessus).Pour récupérer une valeur dans une donnée de type Numeric ou DateTime, vous devez utiliser des paramètres distincts : un paramètre IN de type Text pour la requête JSONPath et un paramètre OUT pour associer à la donnée en Numeric ou DateTime. Les deux paramètres doivent partager le même préfixe de nom (par exemple, les paramètres
AGE__JSONPATH
etAGE
comme ci-dessus).La valeur par défaut de
APP_JSONPATH_DELIMITER
est une virgule (,
) lorsque ce paramètre n'est pas défini.