Protobuf vers JSON Schema
Convertissez des définitions proto3 en JSON Schema, interfaces TypeScript et JSON d'exemple. Prend en charge messages, enums, types imbriqués, oneof, map et repeated.
Mis à jour le
Protobuf to JSON Schema
Convert Protocol Buffer (proto3) definitions to JSON Schema, TypeScript interfaces, and sample JSON. Paste your .proto file and get instant, accurate conversions.
Protobuf Input
Questions Fréquentes
Qu'est-ce que le convertisseur Protobuf vers JSON Schema ?
Le convertisseur Protobuf vers JSON Schema est un outil en ligne gratuit qui convertit des définitions proto3 en JSON Schema, en interfaces TypeScript et en JSON d'exemple. Il prend en charge les messages, les enums, les types imbriqués, oneof, map et repeated. Il fonctionne entièrement dans votre navigateur, sans installation ni inscription.
Quelles fonctionnalités propose-t-il ?
Proto3 : messages, enums, messages imbriqués, repeated, optional, oneof, champs map et tous les types scalaires.
Quels formats de sortie génère-t-il ?
Trois : JSON Schema (Draft-07 avec $ref), interfaces TypeScript et JSON d'exemple avec des valeurs d'espace réservé.
Comment les types int64 sont-ils gérés ?
Ils sont convertis en string à la fois en JSON Schema et en TypeScript, conformément à la convention standard de mappage JSON de protobuf pour les entiers 64 bits.
Le convertisseur Protobuf vers JSON Schema est-il gratuit ?
Oui, le convertisseur Protobuf vers JSON Schema est 100 % gratuit, sans inscription, sans frais cachés et sans limite d'utilisation. Tout le traitement s'effectue localement dans votre navigateur, garantissant une confidentialité totale.
Mes données sont-elles en sécurité avec cet outil ?
Absolument. Le convertisseur Protobuf vers JSON Schema traite tout côté client, dans votre navigateur. Aucune donnée n'est envoyée ni stockée sur un serveur. Votre contenu reste à tout moment privé sur votre appareil.
Le convertisseur Protobuf vers JSON Schema fonctionne-t-il sur mobile ?
Oui, le convertisseur Protobuf vers JSON Schema est entièrement responsive et fonctionne sur smartphones et tablettes. Vous pouvez l'utiliser sur tout appareil doté d'un navigateur web moderne, sans télécharger d'application.
Dois-je créer un compte pour utiliser cet outil ?
Aucun compte ni inscription n'est nécessaire. Ouvrez simplement le convertisseur Protobuf vers JSON Schema dans votre navigateur et commencez à l'utiliser immédiatement. Il n'y a ni barrière d'inscription ni restriction d'utilisation.
Quels langages de programmation ou formats cet outil prend-il en charge ?
Le convertisseur Protobuf vers JSON Schema prend en charge un large éventail de formats et de langages populaires. Consultez l'interface de l'outil pour voir la liste complète des options prises en charge.
Comment utiliser le convertisseur Protobuf vers JSON Schema ?
Saisissez simplement votre entrée dans le champ prévu, ajustez les réglages selon vos préférences et l'outil la traitera instantanément. Vous pouvez ensuite copier le résultat dans votre presse-papiers ou le télécharger.
Quelle est la différence entre un fichier .proto et un JSON Schema ?
Un fichier .proto est la définition source de Protocol Buffers : il déclare les messages, les champs, les types et les numéros de champ utilisés pour sérialiser des données binaires compactes pour gRPC et les API à fort débit. Un JSON Schema décrit la forme d'un document JSON afin que des validateurs puissent vérifier que les payloads entrants ou sortants ont les bons champs et les bons types. Les deux servent la même idée -- un contrat de données -- mais dans deux mondes différents : protobuf régit le format binaire sur le réseau, tandis que JSON Schema régit le JSON lisible par un humain utilisé dans les API web, les fichiers de configuration et la documentation. Convertir l'un vers l'autre permet de valider du JSON selon la même structure que vos services appliquent déjà en binaire. Cet outil lit une définition proto3 et produit un JSON Schema conforme à Draft-07, en utilisant des pointeurs $ref vers un bloc definitions partagé, pour que vous puissiez l'injecter directement dans un validateur sans réécrire les noms de champs à la main.
Pourquoi les valeurs int64 apparaissent-elles comme des chaînes plutôt que des nombres dans le JSON généré ?
Les types entiers 64 bits -- int64, uint64, sint64, fixed64 et sfixed64 -- sont représentés sous forme de chaînes de caractères plutôt que de nombres, aussi bien dans le JSON Schema que dans le JSON d'exemple. Ce n'est pas une bizarrerie du convertisseur : cela suit le mappage JSON officiel de Protobuf. Le type number de JavaScript est un flottant double précision qui ne peut représenter de façon sûre que les entiers jusqu'à 2^53, si bien qu'une véritable valeur 64 bits pourrait silencieusement perdre en précision si elle était interprétée comme un nombre. L'encoder en chaîne préserve chaque chiffre et permet un aller-retour fiable entre langages. Les entiers 32 bits comme int32 et uint32 restent de simples nombres, car ils entrent sans problème dans cette plage. Connaître cette règle évite de mauvaises surprises de validation lorsqu'un backend envoie un identifiant ou un timestamp de grande taille. Collez votre schéma ici et l'outil applique automatiquement la règle chaîne contre nombre pour chaque champ numérique.
Comment les champs repeated, map et oneof sont-ils convertis en JSON Schema et en TypeScript ?
Chaque construction protobuf est convertie vers son équivalent JSON naturel. Un champ repeated devient un tableau JSON et un type tableau en TypeScript, puisqu'il contient zéro ou plusieurs valeurs. Un champ map<key, value> est rendu sous forme d'objet JSON utilisant additionalProperties pour typer les valeurs, car les maps protobuf sont des collections clé-valeur. Un bloc oneof génère chacun de ses membres, et le JSON Schema consigne le fait que les options sont mutuellement exclusives, si bien qu'une seule peut être définie à la fois. Les champs optional deviennent non obligatoires dans le schéma et gagnent un ? dans l'interface TypeScript, tandis que les types scalaires et les messages imbriqués se résolvent via des pointeurs $ref. Ainsi, des schémas complexes du monde réel sont traduits fidèlement plutôt qu'aplatis ou perdus. Cliquez sur Sample .proto pour charger un exemple qui inclut un champ repeated, une map et un oneof, puis comparez les onglets pour voir précisément comment chacun est traité.
Quelles valeurs d'exemple le convertisseur utilise-t-il dans le JSON généré ?
L'onglet JSON d'exemple construit un objet complet en remplissant chaque champ avec une valeur type représentative, pour que vous puissiez voir immédiatement la forme du message. Un string devient "example", un double devient 3.14, les champs entiers reçoivent des nombres de substitution, et un champ bytes affiche une courte chaîne encodée en base64 comme "dGVzdA==", car les bytes sont typés comme des chaînes base64 en JSON. Les champs repeated apparaissent sous forme de tableaux, les maps sous forme d'objets, et les messages imbriqués sont développés en ligne. Ce ne sont pas de vraies données -- ce sont des valeurs types conçues pour amorcer une fixture, un corps de requête Postman ou une réponse d'API simulée, sans avoir à taper un payload réaliste à la main. Comme les valeurs correspondent au type de chaque champ, l'exemple validera face au JSON Schema que l'outil génère à partir du même proto. Collez votre schéma et ouvrez l'onglet JSON d'exemple pour copier ou télécharger un exemple prêt à modifier.
Puis-je générer des interfaces TypeScript directement à partir d'un fichier proto3 ?
Oui. En plus du JSON Schema, le convertisseur produit du TypeScript prêt à l'emploi : une interface par message et un véritable enum par énumération protobuf, si bien que le résultat s'intègre directement dans un projet et offre un typage vérifié à la compilation. Les types de champs suivent le mappage JSON de protobuf -- chaînes, nombres, booléens, tableaux pour les champs repeated, et marqueurs ? sur les champs optional. Les entiers 64 bits sont typés en string pour éviter toute perte de précision, et les champs bytes sont typés comme des chaînes base64. Les commentaires en ligne de votre .proto sont reportés sous forme de descriptions, ce qui garde les types générés documentés. Cela permet à un frontend de rester synchronisé avec la source de vérité du backend sans recopier les noms de champs à la main à chaque changement de schéma -- c'est précisément là que les fautes de frappe et les décalages s'installent habituellement. Collez votre définition proto3, passez à l'onglet TypeScript, puis copiez le résultat ou téléchargez-le sous forme de types.ts.
Outils Associés
Testeur d'API en Ligne Gratuit
Testez des API REST avec des requêtes GET, POST, PUT et DELETE. Gratuit, rapide et entièrement dans votre navigateur, sans inscription.
Convertisseur cURL en Code Gratuit
Convertissez des commandes cURL en code JavaScript, Python ou PHP. Gratuit, rapide et entièrement dans votre navigateur, sans inscription.
Générateur de JSON Schema Gratuit
Générez un JSON Schema à partir de vos données JSON automatiquement. Gratuit, rapide et entièrement dans votre navigateur, sans inscription.
Analyseur d'En-têtes HTTP Gratuit
Analysez et inspectez les en-têtes HTTP des requêtes et des réponses. Gratuit, rapide et entièrement dans votre navigateur, sans inscription.
À propos du convertisseur Protobuf vers JSON Schema
Le convertisseur Protobuf vers JSON Schema transforme une définition proto3 .proto en trois éléments à la fois : un JSON Schema, un jeu d'interfaces TypeScript et un exemple de document JSON rempli de valeurs types. Collez votre schéma dans le champ de saisie et l'outil l'analyse instantanément, en affichant d'abord un décompte rapide des messages, énumérations et champs trouvés, avant de générer chaque résultat dans son propre onglet.
Il s'adresse aux développeurs backend et full-stack qui travaillent avec Protocol Buffers et gRPC mais doivent aussi composer avec le monde JSON — pour valider des payloads d'API, générer des types côté client, ou partager un contrat avec une équipe qui n'utilise pas protoc. Si vous voulez simplement voir à quoi ressemble un message une fois converti en JSON sans installer toute la chaîne d'outils protobuf en local, cet outil fait le travail directement dans le navigateur. Aucune inscription, rien à installer, et votre texte .proto ne quitte jamais votre appareil — l'analyse et la génération de code s'exécutent entièrement côté client en JavaScript.
Ce que le convertisseur sait interpréter
L'analyseur cible proto3 et gère les constructions que l'on rencontre réellement dans les schémas en production :
- Messages et champs, y compris l'ensemble complet des types scalaires (
string,bool,bytes, la famille des entiers,doubleetfloat). - Énumérations (
enum), aussi bien au niveau supérieur qu'imbriquées dans un message. - Messages imbriqués à n'importe quelle profondeur, avec des noms aplatis en définitions à points comme
Order.Address. - Champs
repeated, transformés en tableaux. - Champs
optional, qui deviennent non obligatoires dans le schéma et optionnels (?) en TypeScript. - Champs
map<key, value>, rendus sous forme d'objets avecadditionalProperties. - Blocs
oneof, où chaque membre est généré et où le JSON Schema consigne les options mutuellement exclusives.
La déclaration package et les commentaires en ligne sont également récupérés, les commentaires étant reportés sous forme de champs description et d'annotations JSDoc.
Les trois résultats et leur correspondance de types
Chaque onglet peut être copié dans le presse-papiers ou téléchargé sous forme de fichier (schema.json, types.ts ou sample.json) :
- JSON Schema suit la norme Draft-07. Les types de messages imbriqués ou référencés utilisent des pointeurs
$refvers un blocdefinitionspartagé, et le$refracine pointe vers votre premier message, si bien que le schéma est prêt à être injecté dans un validateur. - Interfaces TypeScript fournissent une
interfacepar message et un véritableenumpar énumération, pour que vous puissiez coller le résultat directement dans un projet et bénéficier d'un typage vérifié à la compilation. - JSON d'exemple produit un objet type avec des valeurs de substitution (par exemple, un
stringdevient"example", undoubledevient3.14), pratique pour amorcer une fixture, une requête Postman ou un mock d'API.
Un détail à connaître : les entiers 64 bits (int64, uint64, sint64, fixed64, sfixed64) sont représentés sous forme de chaînes de caractères, et non de nombres. Ce n'est pas une bizarrerie de cet outil — c'est le mappage JSON officiel de Protobuf, car un entier 64 bits peut dépasser la plage que le type number de JavaScript peut représenter de façon sûre. Les entiers 32 bits restent des nombres, et les champs bytes sont typés comme des chaînes encodées en base64.
Pourquoi convertir du protobuf en JSON
Protocol Buffers est compact et rapide sur le réseau, mais JSON reste la langue commune des API web, des fichiers de configuration et de la documentation. Générer un JSON Schema à partir de votre .proto vous permet de valider le JSON entrant ou sortant selon le même contrat que vos services appliquent déjà en format binaire. La sortie TypeScript garde un frontend synchronisé avec la source de vérité du backend, sans recopier les noms de champs à la main. Et un exemple de payload prêt à l'emploi vous évite la corvée de taper un exemple réaliste manuellement.
Pour commencer, cliquez sur Sample .proto afin de charger un exemple complet avec des messages, une énumération, des types imbriqués, un oneof et une map, puis passez d'un onglet à l'autre pour voir comment chaque construction est traduite. Remplacez-le ensuite par votre propre schéma dès que vous êtes prêt.