Ga naar inhoud
100% lokaal

JSON naar Protobuf schema

Zet een JSON-voorbeeld om in een Protocol Buffers .proto berichtdefinitie.

Invoer
Uitvoer

JSON naar Protobuf schema

Plak een JSON-voorbeeld en dit hulpmiddel leidt de vorm van uw gegevens af en schrijft deze uit als Protocol Buffers bericht definitie, klaar om in een .proto bestand te plaatsen. Het is gebouwd voor het alledaagse geval van het converteren van een API-reactie, een configuratieobject of een logrecord naar een startschema, in plaats van handmatig veldnummers en typen in te voeren.

Kies proto3 of proto2 syntaxis, noem het rootbericht en voeg een pakketdeclaratie toe als uw project er één gebruikt. Veldnummers beginnen standaard op 1 en nemen met 1 toe per veld, beide configureerbaar voor een vooraf gereserveerd nummeringsschema. Arrays worden herhaalde velden en een object waarvan alle waarden van hetzelfde scalartype zijn — een opzoeking op ID of taalcode — wordt map<string, T> in plaats van een vaste bericht, dus een woordenboek veld wordt niet omgezet in tientallen benoemde velden. Schakel het optionele trefwoord in om velden te markeren die ontbreken of nul zijn in onderdelen van uw voorbeeld, en zet geneste berichten in om onderliggende typen in hun ouder te houden in plaats van als vlakke broers en zussen op het hoogste niveau. ISO 8601-achtige datum tekenreeksen toewijzen aan google.protobuf.Timestamp en elk veld kan vergezeld gaan van een opmerking met de oorspronkelijke JSON-sleutel.

Diep geneste objecten, arrays van objecten, arrays van arrays en velden met gemengde typen worden allemaal verwerkt: een echt gemengd-type waarde valt terug op google.protobuf.Value met de bijbehorende import automatisch toegevoegd. Onjuiste JSON wordt gemeld met de regel en kolom waar het parseren is mislukt, in plaats van een generieke fout.

Alles loopt lokaal in uw browser — uw JSON wordt nergens geüpload. Kopieer het gegenereerde schema, download het als .txt bestand om het in .proto te hernoemen, of stuur de uitvoer naar een ander hulpmiddel om mee verder te gaan.

FAQ

Produceert het echte, compileerbare .proto syntaxis?
Ja — de uitvoer is zuivere Protobuf bericht syntaxis (proto2 of proto3) die je rechtstreeks in een .proto bestand kunt plakken. Langetermijnonderhoud, zoals het stabiel houden van veldnummers over schemawijzigingen heen, is nog steeds aan jou.
Hoe besluit het tussen map en message voor een objectveld?
Wanneer elke waarde in een object hetzelfde scalartype is, wordt het weergegeven als map<string, T> — de vorm van een echt woordenboek. Zodra een object waardetype vermengd over zijn sleutels, wordt het in plaats daarvan een benoemd berichtveld per veld.
Wat gebeurt er met een veld dat verschillende typen in een voorbeeld heeft?
Het valt terug op google.protobuf.Value met de overeenkomstige import automatisch bovenaan het schema toegevoegd. Verfijn het veldtype handmatig zodra je hebt besloten welk type bindend is.
Kan ik velden beginnen met nummeren ergens anders dan 1?
Ja — stel het startgetal en de stap in in de opties. Nummerering herstart op je gekozen startwaarde in elk genest bericht, wat aansluit op hoe Protobuf veldnummers in elk bericht bereikt.
Wordt mijn JSON ergens geüpload?
Nee. Schemagenerate loopt volledig in uw browser — uw JSON verlaat uw apparaat nooit.