Kit JSON ↔ Protobuf

Infiere esquemas .proto desde JSON o codifica y decodifica mensajes Protobuf con tu esquema

Muestra JSON

Hasta 5 MB.

Opciones

Nombres de campo
Avanzado

.proto generado

Aún no hay esquema
Pega una muestra JSON o carga un ejemplo y elige Generar .proto.

Pega una muestra JSON o carga un ejemplo y elige Generar .proto.

Tres conversiones, separadas

JSON → .proto infiere un esquema proto3 a partir de una muestra JSON. JSON → Protobuf codifica un mensaje JSON en binario con tu propio esquema .proto y tipo de mensaje, y Protobuf → JSON decodifica hex, base64 o un archivo binario de vuelta a JSON. Inferir un esquema y codificar de verdad son tareas distintas, por eso cada una tiene su propio modo.

Cómo se infieren los esquemas

Los textos pasan a string, los booleanos a bool, los decimales a double y los enteros a int64 por defecto, porque un valor que hoy cabe en int32 puede no caber mañana. Los objetos pasan a mensajes con nombre en PascalCase según su clave, los arrays de un solo tipo pasan a campos repeated, y todos los objetos de un array se combinan para no perder claves opcionales. Los valores solo nulos, vacíos o mezclados usan google.protobuf.Value y se listan como notas. Los números de campo siguen el orden de las claves; una vez desplegado el esquema forman parte del formato binario y no deben cambiar.

Codificar y decodificar

El JSON usa el mapeo ProtoJSON: nombres de campo en lowerCamelCase, enteros de 64 bits como texto, bytes en base64, enums por nombre y las formas especiales de los tipos conocidos como Timestamp, Duration, Struct y los wrappers. Las opciones avanzadas permiten incluir valores por defecto, conservar los nombres proto, escribir enums como números o ignorar campos JSON desconocidos. Al decodificar se listan los números de campo que el mensaje elegido no declara, una señal habitual de que el tipo de mensaje no es el correcto.

Límites y privacidad

Los esquemas deben ser autónomos: se incluyen los tipos conocidos de Google (Timestamp, Duration, Struct, Any, Empty, FieldMask y wrappers), y otras importaciones nunca se descargan de la red. Una muestra no revela enums, mapas, presencia ni planes de evolución, así que revisa cada esquema inferido. Todo se ejecuta en tu navegador; los mensajes y esquemas no se suben.

CodingTool ya está oficialmente disponible en

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