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

{
    "person": {
        "address": {
            "street": "160 Guy Street",
            "zipcode": "J4G 1U4"
        },
        "age": 30,
        "name": "John"
    }
}

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

{
    "person": {
      "name": "Elizabeth",
      "age": 85,
      "dob": "1937-09-23T00:00:00Z",
      "children": [
        {
          "name": "Charles",
          "age": 60,
          "children": [
            {
              "name": "Nathalie",
              "children": [
                {
                  "name": "George",
                  "age": 8
                },
                {
                  "name": "Charlotte",
                  "age": 10
                },
                {
                  "name": "Jefferson",
                  "age": 7
                }
              ]
            },
            {
              "name": "Harry"
            }
          ]
        },
        {
          "name": "Bob",
          "age": 57,
          "children": [
            {
              "name": "John"
            },
            {
              "name": "Mark"
            }
          ]
        }
      ]
    }
}

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.