Application de workflow 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ètre JSON_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 fichier web.config sur 0 pour désactiver la journalisation, 1 pour les logs d'erreur, 2 pour des logs d'informations ou 3 pour les logs de débogage; la valeur par défaut est 0.

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
1
{
2
"person": {
3
"address": {
4
"street": "160 Guy Street",
5
"zipcode": "J4G 1U4"
6
},
7
"age": 30,
8
"name": "John"
9
}
10
}
Copied!
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
1
{
2
"person": {
3
"name": "Elizabeth",
4
"age": 85,
5
"dob": "1937-09-23T00:00:00Z",
6
"children": [
7
{
8
"name": "Charles",
9
"age": 60,
10
"children": [
11
{
12
"name": "Nathalie",
13
"children": [
14
{
15
"name": "George",
16
"age": 8
17
},
18
{
19
"name": "Charlotte",
20
"age": 10
21
},
22
{
23
"name": "Jefferson",
24
"age": 7
25
}
26
]
27
},
28
{
29
"name": "Harry"
30
}
31
]
32
},
33
{
34
"name": "Bob",
35
"age": 57,
36
"children": [
37
{
38
"name": "John"
39
},
40
{
41
"name": "Mark"
42
}
43
]
44
}
45
]
46
}
47
}
Copied!
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 de PARAM1 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 et AGE comme ci-dessus).
  • La valeur par défaut de APP_JSONPATH_DELIMITER est une virgule (,) lorsque ce paramètre n'est pas défini.