Preskoči na vsebino
100% lokalno

JSON v Protobuf shemo

Pretvori primjer JSON-a v definicijo Protocol Buffers .proto sporočila.

Vhod
Izhod

JSON v Protobuf shemo

Prilepi primjer JSON-a in to orodje zaključi obliko tvojih podatkov ter ga zapiše kot definicijo Protocol Buffers sporočila, pripravljeno za vstavo v datoteko .proto. Zgrajeno je za vsakdanja primera pretvarjanja odgovora API-ja, objekta nastavitve ali dnevnika v začetno shemo, namesto ročnega pisanja številk polj in vrst.

Izberi proto3 ali proto2 sintakso, poimenuj glavno sporočilo in dodaj deklaracijo paketa, če jo tvoj projekt uporablja. Številke polj se privzeto začnejo pri 1 in se povečajo za 1 na polje, obe se dasta konfigurirati za vnaprej rezervirano numeracijsko shemo. Nizi postanejo ponavljajoča se polja, objekt, katerega vrednosti so vse ene vrste — iskanje identificjeno s ključem ali jezikovno kodo — pa postane map<string, T> namesto fiksnega sporočila, tako da polje slovarja ne postane ducati poimenovanih polj. Vključi optional ključno besedo, da označiš polja, ki v delu tvojega vzorca manjkajo ali so null, in preklopi ugniježena sporočila, da obdržiš otroške tipe v okviru svojih staršev namesto kot ravne vrhove naslednika. Datumi, podobni ISO 8601, se preslikajo v google.protobuf.Timestamp, in vsako polje lahko nosi komentar s svojim prvotnim JSON ključem.

Gluboko ugniježeni objekti, nizi objektov, nizi nizov in polja mešanih vrst se vsa obdelajo: res mešana vrednost pada na google.protobuf.Value z samodejno dodano ustrezno uvozom. Pokvarjen JSON se priglasi z vrstico in stolpcem, kjer je analiza neuspešna, namesto napake, ki je splošna.

Vse se odvija lokalno v tvojem brskalniku — tvoj JSON se nikoli ne nalagа nikjer. Skopira generirano shemo, jo preneseι kot datoteko .txt, ki jo preimenuješ v .proto, ali pošlji izhod drugemu orodju, da nadaljuješ.

FAQ

Ali proizvaja pravo, prevajajočo .proto sintakso?
Da — izhod je navadna sintaksa protocol buffer sporočila (proto2 ali proto3), ki jo lahko direktno prilepiš v datoteko .proto. Dolgoročno vzdrževanje, kot je ohranjanje stabilnih števil polj v spremembe sheme, je še vedno na tebi.
Kako se odloči med zemljevidom in sporočilom za polje objekta?
Kadar je vsaka vrednost znotraj objekta iste skalarne vrste, se upodobi kot map<string, T> — oblika, ki jo ima pravi slovar. Takoj ko objekt meša vrste vrednosti čez njegove ključe, postane polje poimenovanega sporočila polje za polje.
Kaj se zgodi s poljem, ki ima različne vrste v vzorcu?
Pada na google.protobuf.Value s primernim uvozom, dodanim na vrh sheme. Dodelava vrste polja je še vedno na tebi, ko si se odločiš, katera vrsta je avtoritativna.
Ali lahko oštevilčim polja, ki se začnejo nekje drugje kot pri 1?
Da — nastavi začetno število in korak v možnostih. Oštevilčanje se vrne na tvojo izbrano začetno vrednost v vsakem ugniježdenem sporočilu, kar se ujema s tem, kako protobuf deliti števila polj.
Je moj JSON naložen nekje?
Ne. Tvorjenje sheme se zgodi v celoti v tvojem brskalniku — tvoj JSON nikoli ne zapusti tvojo napravo.