Toolkit JSON ↔ Protobuf

Simpulkan skema .proto dari JSON, atau enkode dan dekode payload Protobuf dengan skema Anda

Contoh JSON

Hingga 5 MB.

Opsi

Nama field
Lanjutan

.proto yang dibuat

Belum ada skema
Tempel contoh JSON atau muat contoh, lalu pilih Buat .proto.

Tempel contoh JSON atau muat contoh, lalu pilih Buat .proto.

Tiga konversi, terpisah

JSON → .proto menyimpulkan skema proto3 dari contoh JSON. JSON → Protobuf meng-encode payload JSON menjadi biner dengan skema .proto dan tipe pesan Anda sendiri, dan Protobuf → JSON men-decode hex, base64, atau berkas biner kembali ke JSON. Menyimpulkan skema dan encoding sungguhan adalah pekerjaan berbeda, jadi masing-masing punya mode sendiri.

Cara skema disimpulkan

Teks menjadi string, boolean menjadi bool, desimal menjadi double, dan bilangan bulat menjadi int64 secara bawaan, karena nilai yang muat di int32 hari ini belum tentu muat besok. Objek menjadi pesan bernama PascalCase dari kuncinya, array bertipe tunggal menjadi field repeated, dan semua objek dalam array digabung agar kunci opsional tidak terlewat. Nilai yang hanya null, kosong, atau campuran memakai google.protobuf.Value dan dicatat. Nomor field diberikan sesuai urutan kunci; setelah skema dirilis, nomor itu bagian dari format wire dan tidak boleh berubah.

Encode dan decode

JSON memakai pemetaan ProtoJSON: nama field lowerCamelCase, bilangan bulat 64-bit sebagai teks, bytes sebagai base64, enum sebagai nama, dan bentuk khusus tipe well-known seperti Timestamp, Duration, Struct, dan wrapper. Opsi lanjutan dapat menyertakan nilai bawaan, mempertahankan nama field proto, menulis enum sebagai angka, atau mengabaikan field JSON tak dikenal. Saat decode, nomor field yang tidak dideklarasikan pesan terpilih ikut dicantumkan, tanda umum bahwa tipe pesannya salah.

Batasan dan privasi

Skema harus mandiri: tipe well-known Google (Timestamp, Duration, Struct, Any, Empty, FieldMask, dan wrapper) sudah dibundel, dan impor lain tidak pernah diambil dari jaringan. Satu contoh tidak bisa mengungkap enum, map, presence, atau rencana evolusi, jadi tinjau setiap skema hasil inferensi. Semua berjalan di peramban Anda; payload dan skema tidak diunggah.

CodingTool resmi diluncurkan di

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch