> 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/data-to-json.md).

# Data to JSON

Ce bloc de fonction convertit les valeurs d'entrée sélectionnées en une seule chaîne au format JSON lorsque l'enregistrement (logging) est lancé. Utilisez les champs d'en-tête pour nommer chaque entrée de données. Seules les entrées de données connectées sont exportées.

## 📥 Entrées

* `Start Logging` (input socket) — Contrôle quand le bloc collectera et exportera les données. Fournissez un signal booléen pour démarrer le processus d'export.
* `Data_1` ... `Data_10` (input sockets) — Entrées de données génériques pouvant accepter des nombres, du texte, des listes ou d'autres valeurs. Seules les entrées connectées sont incluses dans le JSON exporté.

## 📤 Sorties

* `JSON Data` (output socket) — Une chaîne JSON contenant les paires clé/valeur actuellement exportées. Lorsque `Start Logging` n'est pas actif, cette sortie reste vide/None.

## 🕹️ Contrôles

* `Data_1 Header` à `Data_10 Header` — Champs de texte où vous pouvez saisir des noms lisibles par l'utilisateur pour chaque entrée de données correspondante.
  * Laissez un champ d'en-tête vide pour utiliser l'étiquette par défaut `Data_X` pour cette entrée.
  * Seules les entrées connectées seront présentes dans le JSON résultant ; les champs d'en-tête non utilisés sont ignorés.
* `Set Data Headers (UI note)` — Étiquette informative dans l'interface rappelant que les champs d'en-tête vides seront ignorés.

## 🎯 Fonctionnalités

* Exporte plusieurs entrées génériques dans un seul objet JSON.
* Permet de définir des clés lisibles via les contrôles d'en-tête, ou de revenir aux clés par défaut `Data_X`.
* Inclut automatiquement uniquement les entrées réellement connectées au moment de l'enregistrement.
* Produit une seule chaîne JSON adaptée pour l'enregistrement, l'envoi via REST/MQTT ou la sauvegarde dans des fichiers.

## ⚙️ Mécanisme d'exécution

* Le bloc surveille l'entrée `Start Logging`. Lorsque cette entrée devient vraie, il :
  * Lit les textes des en-têtes depuis les dix champs d'en-tête.
  * Récupère les valeurs de toutes les entrées connectées `Data_1` … `Data_10`.
  * Associe les entrées connectées aux en-têtes correspondants (ou aux étiquettes par défaut `Data_X`).
  * Construit un objet JSON mappant les en-têtes à leurs valeurs et renvoie cet objet sous forme de chaîne JSON sur la sortie `JSON Data`.
* Si aucun déclencheur d'enregistrement n'est fourni, le bloc ne produit aucune sortie JSON.
* Si le nombre d'en-têtes et le nombre d'entrées connectées ne correspondent pas, le bloc affiche un message d'erreur dans l'UI — assurez-vous que vos en-têtes correspondent aux données que vous souhaitez exporter.

## 📝 Instructions d'utilisation

1. Remplissez les champs d'en-tête `Data_1 Header` … `Data_10 Header` avec des noms significatifs pour les données que vous prévoyez d'exporter, ou laissez-les vides pour utiliser les valeurs par défaut.
2. Branchez les sources que vous souhaitez exporter dans les prises d'entrée correspondantes `Data_X`.
3. Envoyez un signal TRUE à `Start Logging` pour produire la chaîne JSON sur la sortie `JSON Data`.
4. Exploitez la sortie `JSON Data` avec des blocs d'export (écriture de fichier, REST publisher, MQTT, etc.) ou affichez-la dans l'interface.

## 💡 Astuces

* Combinez avec des blocs de mesure et de détection pour créer des logs structurés :
  * Utilisez les sorties de `Object Detection` ou `Object Detection - Custom` comme entrées pour créer des résumés JSON des objets détectés.
  * Alimentez les coordonnées de pose ou de squelette de `Pose Estimation` ou `Skeleton Estimation` pour exporter des données de posture humaine.
  * Employez les résultats de `Find Object`, `Histogram On Line` ou `Measure Position Distance` pour les analyses et incluez-les dans les logs JSON.
  * Envoyez les sorties OCR de `OCR` ou `OCR (EasyOCR)` dans ce bloc pour exporter le texte reconnu avec des horodatages.
* Pour stockage persistant ou enregistrement continu :
  * Dirigez la sortie `JSON Data` vers `CSV Export`, `Image Logger` (pour les métadonnées liées aux images), ou vers un bloc REST/MQTT (par ex. `REST API - Post` ou `MQTT Publish`) pour envoyer les données vers un serveur ou une base.
* Exporter sélectivement uniquement les valeurs connectées :
  * Vous n'avez pas besoin de remplir tous les en-têtes. Seules les prises `Data_X` connectées sont incluses, vous pouvez donc ne câbler que les signaux nécessaires.

## 🛠️ Dépannage

* Si aucun JSON n'apparaît alors que vous l'attendez :
  * Vérifiez que `Start Logging` reçoit la valeur TRUE.
  * Assurez-vous qu'au moins une entrée `Data_X` est connectée.
* Si les noms de champs ne correspondent pas aux clés exportées :
  * Vérifiez que le champ de texte `Data_X Header` correspondant est rempli. Les champs d'en-tête vides retombent sur les clés par défaut `Data_X`.
* Si une erreur indique un nombre d'éléments non concordant :
  * Confirmez que le nombre d'entrées connectées correspond aux en-têtes que vous prévoyez d'utiliser, ou nommez explicitement les en-têtes uniquement pour les entrées réellement connectées.
* Pour transmettre le JSON vers un système externe :
  * Utilisez ensuite des blocs tels que `REST API - Post`, `MQTT Publish` ou des blocs de base de données comme `SQL-DB Operations` pour livrer ou stocker la charge utile JSON.
