---
title: Codec — convertisseur XML · JSON · Protobuf
source: https://synapx.fr/sdk/Codec/
site: SynapxLab
---

# Codec — convertisseur XML · JSON · Protobuf

## À quoi sert le SDK

Codec est un convertisseur de formats d'échange de données utilisable directement depuis le navigateur. Il permet de passer d'un document XML à du JSON, de préparer ou relire des messages Protocol Buffers (Protobuf), et de comparer la représentation de ces mêmes données selon le format choisi. Le JSON joue le rôle de format pivot entre XML et Protobuf.

L'outil s'adresse aux développeurs, intégrateurs API, équipes d'interopérabilité et personnes qui doivent analyser des flux sans installer d'utilitaire local. Il convient notamment pour vérifier une charge utile d'API, préparer un exemple de message, contrôler un schéma Protobuf ou comprendre l'écart de taille entre formats.

## Les formats pris en charge

XML est un format textuel balisé, courant dans les services historiques, les exports et les échanges structurés.

JSON est un format textuel léger, lisible et largement employé par les API web ; dans Codec, il sert de passerelle entre les autres formats.

Protobuf est un format binaire compact défini par un schéma, adapté aux échanges efficaces entre applications et services.

## Pourquoi Protobuf exige un schéma .proto

Un message Protobuf binaire ne contient pas les noms de ses champs. Il encode des numéros de champ, des types de données et des valeurs : par exemple, le numéro `1` peut désigner un identifiant dans un schéma, mais rien dans le binaire ne dit qu'il s'appelle `id`.

Le fichier `.proto` décrit cette structure : noms des messages, numéros des champs, types, répétitions et imbrications. Codec a donc besoin du schéma fourni par l'utilisateur pour encoder du JSON en Protobuf et pour décoder du Protobuf en JSON de manière fiable. Sans ce contrat, il est possible de lire la structure brute des données, mais pas de retrouver les noms et la signification des champs.

## Utiliser la page Codec

Collez ou chargez d'abord votre schéma `.proto` lorsque vous travaillez avec Protobuf. Choisissez ensuite le message à utiliser dans le schéma, puis saisissez ou collez vos données dans le format source. La page permet les conversions XML vers JSON et JSON vers XML, ainsi que JSON vers Protobuf et Protobuf vers JSON avec le message sélectionné.

Après une conversion, consultez les tailles comparées en octets pour mesurer le poids de XML, JSON et Protobuf à contenu équivalent. Le wire format décodé complète cette lecture : il décompose le binaire Protobuf par tag, type et valeur brute. C'est utile pour diagnostiquer un message, contrôler ses champs encodés ou examiner des données sans interprétation métier complète.

## API JavaScript SXP.Codec

- `loadSchema(proto)` charge et analyse le contenu d'un schéma `.proto` afin de rendre ses messages disponibles.
- `encode(message, data)` encode un objet JSON selon le message Protobuf indiqué et renvoie sa représentation binaire.
- `decode(message, bytes)` décode des octets Protobuf selon le message choisi et renvoie l'objet JSON correspondant.
- `jsonToXml(data)` transforme un objet JSON en XML.
- `xmlToJson(xml)` transforme une chaîne XML en objet JSON.
- `hexDump(bytes)` produit un affichage hexadécimal lisible d'une suite d'octets.
- `inspect(bytes)` analyse le wire format Protobuf et expose ses éléments bruts, notamment tags, types et valeurs.
- `byteLength(value)` calcule le poids en octets d'une donnée ou d'une représentation fournie.

## Confidentialité et traitement local

Toutes les opérations de Codec sont exécutées côté navigateur. Les schémas `.proto`, documents XML, données JSON et messages Protobuf restent sur votre poste : aucune donnée n'est transmise à un serveur pour être convertie, analysée ou stockée. Cette exécution locale permet d'utiliser l'outil sur des données techniques ou sensibles tout en conservant la maîtrise du traitement.
