> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/french/function-blocks/blocks-reference/data-logic/data-operations/parse-data-dictionary.md).

# Parse Data Dictionary

Ce bloc fonction extrait une seule valeur d'un dictionnaire fourni sous forme de texte ou d'objet dictionnaire. Il vous aide à sélectionner une clé dans les données entrantes et renvoie la valeur associée pour être utilisée dans le reste de votre système.

## 📥 Sockets as inputs <a href="#inputs" id="inputs"></a>

`Input Dictionary (String)`\
Fournissez une chaîne au format JSON ou un dictionnaire déjà parsé. L'exemple de format affiché dans l'interface vous aide à préparer l'entrée.

## 📤 Sockets as outputs <a href="#outputs" id="outputs"></a>

`Output Data`\
La valeur correspondant à la clé sélectionnée dans le menu déroulant. Si la clé sélectionnée n'est pas présente ou si aucune entrée n'est fournie, la sortie peut être vide.

## 🕹️ Controls <a href="#controls" id="controls"></a>

`Select key from input data dict` Menu déroulant pour choisir la clé du dictionnaire entrant que vous souhaitez extraire.

`Input example / helper text` Texte informatif montrant un exemple de format d'entrée (par ex. {"name": "product", "id": 345}) pour vous guider.

## 🎯 What this block does <a href="#features" id="features"></a>

* Lit automatiquement le texte de type JSON ou les dictionnaires entrants et expose les clés disponibles.
* Si les clés disponibles changent, le menu déroulant se met à jour pour vous permettre de sélectionner la nouvelle clé.
* Ne renvoie que la valeur sélectionnée (pas tout le dictionnaire), ce qui facilite l'alimentation d'autres blocs en aval avec une seule valeur.

## 📝 How to use <a href="#usage" id="usage"></a>

1. Alimentez le socket `Input Dictionary (String)` avec une chaîne JSON ou un dictionnaire.
2. Ouvrez le menu `Select key from input data dict` et choisissez la clé dont vous avez besoin.
3. La valeur choisie apparaîtra sur le socket `Output Data` pour être utilisée par d'autres blocs.

## ⚙️ Running behavior <a href="#evaluation" id="evaluation"></a>

Lorsque le bloc s'exécute, il vérifie l'entrée reçue. Si c'est une chaîne représentant un dictionnaire, il la parse et liste les clés de premier niveau dans le menu déroulant. Lorsque vous choisissez une clé, le bloc renvoie la valeur associée sur `Output Data`. La liste du menu se met à jour automatiquement chaque fois qu'une nouvelle entrée présente un ensemble de clés différent.

## 💡 Tips and Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Utilisation avec des blocs de communication pour traiter les messages entrants :
  * Connectez `REST API - Get` (utilisez son `Response`) pour parser les réponses d'API.
  * Connectez `MQTT Subscribe` (utilisez son `Data`) pour extraire des champs des messages reçus.
* Utilisation avec des blocs de stockage/flux :
  * Alimentez avec les sorties de `Data Read Local` ou `Data Read Global` pour parser des dictionnaires stockés.
  * Associez avec `Data to JSON` si vous devez d'abord convertir des données structurées en chaîne, puis parser une clé spécifique ici.
* Sauvegarder ou inspecter les résultats :
  * Envoyez `Output Data` extrait vers `CSV Export` ou `Image Logger` (si vous enregistrez des métadonnées) pour la journalisation.
  * Utilisez `Debug Input` pour inspecter rapidement la valeur parsée pendant le développement.
* Indice de validation : si vous testez manuellement, essayez d'envoyer une valeur depuis `String Input` pour confirmer que le menu déroulant se remplit correctement.

## 🛠️ Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

* Rien n'apparaît dans le menu déroulant : assurez-vous que l'entrée est une chaîne JSON valide ou un objet dictionnaire et qu'elle contient des clés de premier niveau.
* Format d'entrée invalide : fournissez un texte au format JSON (clés et chaînes entre guillemets) ou un dictionnaire correct provenant des blocs en amont.
* La clé sélectionnée renvoie une sortie vide : confirmez que la clé existe dans le dictionnaire d'entrée actuel et que vous avez bien sélectionné l'entrée correcte dans le menu déroulant.
* Les clés changent mais le menu ne se rafraîchit pas : fournissez un nouveau dictionnaire (ou réévaluez le bloc en amont) afin que le bloc puisse détecter le nouvel ensemble de clés et mettre à jour la liste.
