Přeskočit na obsah

JSON na schéma Protobuf

Převeďte vzor JSON do definice zprávy Protocol Buffers .proto.

Vstup
Výstup

JSON na schéma Protobuf

Vložte vzorek JSON a tento nástroj odvodí tvar vašich dat a zapíše ho jako definici zprávy Protocol Buffers, kterou můžete vložit přímo do souboru .proto. Je navržen pro obvyklý případ konverze odpovědi API, konfiguračního objektu nebo záznamu z protokolu do počáteční schéma namísto ručního psaní čísel polí a typů.

Zvolte syntax proto3 nebo proto2, pojmenujte kořenovou zprávu a pokud váš projekt používá balíček, přidejte jej deklaraci. Čísla polí začínají na 1 ve výchozím nastavení a zvyšují se o 1 na pole, oba konfigurovatelné pro schéma číslování vyhrazené předem. Pole se stanou opakovanými poli a objekt, jehož hodnoty jsou všechny jednoho typu — vyhledávání podle ID nebo kódu jazyka — se stane map<string, T> místo pevné zprávy, takže pole slovníku se nezmění na desítky pojmenovaných polí. Zapněte klíčové slovo optional, abyste označili pole chybějící nebo null v části vašeho vzorku, a přepínajte vnořené zprávy, abyste udrželi typy jejich nadřazeného prvku místo plochých sourozenců na vrchní úrovni. Dátumové řetězce vypadající jako ISO 8601 se mapují na google.protobuf.Timestamp a každé pole může nést komentář s jeho původním klíčem JSON.

Hluboce vnořené objekty, pole objektů, pole polí a smíšené typové pole jsou všechny zpracovávány: skutečně smíšená hodnota typu se vrací na google.protobuf.Value s příslušným importem přidaným automaticky. Poškozený JSON je hlášen s řádkem a sloupcem, kde se parsování nezdařilo, místo obecné chyby.

Všechno běží lokálně v tvém prohlížeči — tvůj JSON nikdy nikam není nahrán. Zkopíruj vygenerované schéma, stáhni si jej jako .txt soubor, abys jej mohl přejmenovat na .proto, nebo pošli výstup jinému nástroji, aby si pokračoval v práci.

Časté dotazy

Produkuje to skutečnou, kompilovatelnou .proto syntaxi?
Ano — výstup je čistá syntax zprávy protobuf (proto2 nebo proto3), kterou můžete vložit přímo do souboru .proto. Dlouhodobá údržba, jako udržování stabilních čísel polí v rámci změn schématu, zůstává na vás.
Jak se rozhoduje mezi mapou a zprávou pro pole objektu?
Když má každá hodnota v objektu stejný skalární typ, vykresli se jako map<string, T> — tvar, který má skutečný slovník. Jakmile objekt smísí typy hodnot přes své klíče, stane se pojmenovaným polem zprávy pole za polem místo toho.
Co se stane s polem, které má různé typy vzorku?
Vrátí se zpět na google.protobuf.Value s příslušným importem přidaným na začátek schématu. Zpřesnit typ pole ručně, jakmile jste se rozhodli, který typ je autoritativní.
Mohu číslovat pole od jiného čísla než 1?
Ano — nastavte počáteční číslo a krok v možnostech. Číslování se restartuje na vámi zvolenou počáteční hodnotou v každé vnořené zprávě, což odpovídá tomu, jak protobuf vymezuje čísla polí.
Je můj JSON nahrán někam?
Ne. Generování schématu běží zcela v tvém prohlížeči — tvůj JSON nikdy neopustí tvoje zařízení.