İçeriğe atla
%100 yerel

JSON to Protobuf Şeması

Bir JSON örneğini Protocol Buffers .proto ileti tanımına dönüştürün.

Giriş
Çıkış

JSON to Protobuf Şeması

Bir JSON örneği yapıştırın; araç verinizin yapısını çıkarır ve bunu doğrudan bir .proto dosyasına yapıştırılmaya hazır bir Protocol Buffers ileti tanımı olarak yazar. Alan numaralarını ve tiplerini elle yazmak yerine bir API yanıtını, bir yapılandırma nesnesini veya bir günlük kaydını başlangıç şemasına dönüştürmek gibi günlük bir iş için tasarlandı.

proto3 ya da proto2 söz dizimini seçin, kök iletiyi adlandırın ve projeniz kullanıyorsa bir package bildirimi ekleyin. Alan numaraları öntanımlı olarak 1'den başlar ve her alanda 1 artar; önceden ayrılmış bir numaralandırma düzeni için ikisi de ayarlanabilir. Diziler repeated alanlara dönüşür; değerlerinin tümü aynı tipte olan bir nesne — kimliğe ya da dil koduna göre anahtarlanmış bir arama tablosu — sabit bir ileti yerine map<string, T> olur, böylece bir sözlük alanı onlarca adlandırılmış alana bölünmez. Örneğinizin bir kısmında eksik ya da null olan alanları işaretlemek için optional anahtar sözcüğünü açın; alt tipleri üst iletinin içinde tutmak için iç içe iletileri kullanın. ISO 8601 görünümlü tarih dizgileri google.protobuf.Timestamp'e eşlenir ve her alan özgün JSON anahtarını bir yorumda taşıyabilir.

Derin iç içe nesneler, nesne dizileri, dizi dizileri ve karışık tipli alanların tümü işlenir: gerçekten karışık tipli bir değer, gerekli import kendiliğinden eklenerek google.protobuf.Value'ya düşer. Bozuk JSON, genel bir hata yerine ayrıştırmanın başarısız olduğu satır ve sütunla bildirilir.

Her şey tarayıcınızda yerel olarak çalışır — JSON'unuz hiçbir yere yüklenmez. Üretilen şemayı kopyalayın, .proto olarak yeniden adlandırmak üzere .txt dosyası olarak indirin veya çıktıyı başka bir araca göndererek çalışmayı sürdürün.

FAQ

Gerçek, derlenebilir .proto söz dizimi üretir mi?
Evet — çıktı, doğrudan bir .proto dosyasına yapıştırabileceğiniz düz protobuf ileti söz dizimidir (proto2 ya da proto3). Şema değişirken alan numaralarını sabit tutmak gibi uzun vadeli bakım yine size aittir.
Bir nesne alanı için harita ve ileti arasında nasıl karar verir?
Bir nesnenin içindeki her değer aynı skaler tipte olduğunda map<string, T> olarak yazılır — gerçek bir sözlüğün taşıdığı yapı budur. Bir nesne anahtarları arasında değer tiplerini karıştırdığı anda ise alan alan adlandırılmış bir iletiye dönüşür.
Örnek arasında farklı türlere sahip bir alan ne olur?
google.protobuf.Value'ya düşer ve karşılık gelen import şemanın en üstüne eklenir. Hangi tipin geçerli olduğuna karar verdikten sonra alan tipini elle inceltin.
Alanları 1 dışında bir yerden numaralandırabilirim mi?
Evet — başlangıç numarasını ve adımı seçeneklerden ayarlayın. Numaralandırma her iç içe iletinin içinde seçtiğiniz başlangıç değerinden yeniden başlar; bu, protobuf'un alan numaralarını kapsamlama biçimiyle örtüşür.
JSON'um bir yere yüklendi mi?
Hayır. Şema üretimi tümüyle tarayıcınızda çalışır — JSON'unuz cihazınızdan hiç ayrılmaz.