Preskočiť na obsah

JSON na schému Protobuf

Premeňte vzorku JSON do definície správy Protocol Buffers .proto.

Vstup
Výstup

JSON na schému Protobuf

Vložte vzorku JSON a tento nástroj vyvodí tvar vašich dát a zapíše ho ako definíciu správy Protocol Buffers, ktorú môžete vložiť priamo do súboru .proto. Je navrhnutý pre bežný prípad konverzie odpovede API, konfiguračného objektu alebo záznamu z denníka do počiatočnej schémy namiesto ruky písania čísel polí a typov.

Zvoľte si syntax proto3 alebo proto2, pomenujte koreňovú správu a ak váš projekt používa jeden, pridajte deklaráciu balíka. Poradové čísla polí začínajú na 1 podľa predvoleného nastavenia a zvyšujú sa o 1 na pole, oba konfigurovateľné pre schému číslovania vyhradenú vopred. Polia sa stanú opakovateľnými poľami a objekt, ktorého hodnoty sú všetky jedného typu — vyhľadávanie podľa ID alebo kódu jazyka — sa zmení na map<string, T> namiesto pevnej správy, takže pole slovníka sa nezmení na desiatky pomenovaných polí. Aktivujte kľúčové slovo optional, aby ste označili polia chýbajúce alebo null v časti vašej vzorky, a prepínajte vnorené správy, aby ste udržali typy podľa ich rodičovského prvku namiesto plochých súrodencov na vrchnej úrovni. Dátumové reťazce vyzerajúce ako ISO 8601 sa mapujú na google.protobuf.Timestamp a každé pole môže niesť komentár s jeho pôvodným kľúčom JSON.

Glboko vnorené objekty, polia polí objektov, polia polí a zmiešaný typ polí sú všetky spracovávané: skutočne zmiešaný typ hodnoty sa vracia k google.protobuf.Value s príslušným dovozom automaticky. Malformovaný JSON je hlásený s riadkom a stĺpcom, kde sa analýza nepodarila, namiesto generickej chyby.

Všetko sa spúšťa lokálne v tvojom prehliadači — tvoj JSON nikdy nikde nie je nahraný. Skopíruj vygenerovanú schému, stiahni ju ako súbor .txt, aby sa dala premenovať na .proto, alebo pošli výstup inému nástroju, aby si pokračoval v práci.

Časté otázky

Produkuje to skutočnú, kompilovaciu .proto syntax?
Áno — výstup je čistá syntax správy protobuf (proto2 alebo proto3), ktorú môžete vložiť priamo do súboru .proto. Dlhodobá údržba, ako udržiavanie stabilných poradových čísel polí pri zmenách schémy, je stále na vás.
Ako sa rozhoduje medzi mapou a správou pre pole objektu?
Keď má každá hodnota v objekte rovnaký skalárny typ, vykresľuje sa ako map<string, T> — tvar, ktorý má skutočný slovník. Čím skôr objekt zmiešava typy hodnôt vo svojich kľúčoch, tým skôr sa stane poľom správy po poli namiesto toho.
Čo sa stane s poľom, ktoré má rôzne typy vo vzorke?
Vracia sa k google.protobuf.Value s príslušným dovozom pridaným na vrchu schémy. Spresnite typ poľa ručne, keď ste sa rozhodli, ktorý typ je autoritatívny.
Môžem začať číslovať polia na inom mieste ako 1?
Áno — nastavte počiatočné číslo a krok v možnostiach. Číslovanie sa reštartuje na vami zvolené počiatočnej hodnote v každej vnorenej správe, čo zodpovedá tomu, ako protobuf stanovuje rozsah poradových čísel polí.
Je môj JSON nahraný niekam?
Nie. Generovanie schémy beží úplne v tvojom prehliadači — tvoj JSON nikdy neopustí tvoje zariadenie.