# 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.&#x20;

## 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.<br>
* 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.<br>
* 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`.<br>

## 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",
      "children": [
        {
          "name": "Charles",
          "age": 30,
          "children": [
            {
              "name": "Nathalie",
              "children": [
                {
                  "name": "George",
                  "age": 8
                },
                {
                  "name": "Charlotte",
                  "age": 10
                },
                {
                  "name": "Jefferson",
                  "age": 7
                }
              ]
            },
            {
              "name": "Harry"
            }
          ]
        },
        {
          "name": "Bob",
          "age": 20,
          "children": [
            {
              "name": "John"
            },
            {
              "name": "Mark"
            }
          ]
        }
      ]
    }
}
```

Dans l'exemple ci-dessus, nous voulons obtenir les noms des petits-fils 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`). Pour obtenir ces informations, les paramètres suivants doivent être définis :

| Paramètre                | Type | Direction | Valeur IN                                                                         | OUT Value                                          |
| ------------------------ | ---- | --------- | --------------------------------------------------------------------------------- | -------------------------------------------------- |
| `APP_JSONPATH_DELIMITER` | Text | IN        | `\|`                                                                              | -                                                  |
| `PARAM1__JSONPATH`       | Text | INOUT     | `person.children[?(@.name == 'Charles')].children[*].children[?(@.age > 7)].name` | `DATA1_VALUE` (value will be: `George\|Charlotte`) |

{% hint style="warning" %}

* Dans le nom du paramètre `PARAM1__JSONPATH`, le nom `PARAM1` n'est pas pertinent, mais il doit être suivi du suffixe `__JSONPATH` (**deux** traits de soulignement sont utilisés dans le suffixe).<br>
* La valeur par défaut de `APP_JSONPATH_DELIMITER` est une virgule (`,`) lorsque ce paramètre n'est pas défini.
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.workflowgen.com/admin-fr/8.0/application-de-workflow-jsontodata.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
