JSON to Proto Converter

Generate a draft Protobuf (.proto) schema from sample JSON. Runs locally in your browser.

JSON

Protobuf Schema

syntax = "proto3";
​
message Root {
string order_id = 1;
Customer customer = 2;
repeated Item items = 3;
string status = 4;
​
message Customer {
string name = 1;
string email = 2;
}
​
message Item {
string sku = 1;
int32 quantity = 2;
int64 unit_price_cents = 3;
}
}
​

The Kafka IDE

Register and evolve Protobuf schemas in Kafma

Kafma is a desktop app for Kafka. Register schemas, compare version changes, and publish updates with Schema Registry compatibility checks.

macOS Windows Linux
Kafma drafting a new Protobuf version of orders.confirmed-value with a live diff and compatibility set to BACKWARD
Kafka Schema Explorer

JSON to Proto FAQ

Why did userId become user_id in the Protobuf schema?
This converter uses snake_case field names, so userId becomes user_id. ProtoJSON accepts userId for that field. If names collide, the converter adds a suffix; check those names before using the schema.
Why did "1999" become int64 in the Protobuf schema?
Integer strings that fit the signed 64-bit range become int64; larger values stay string. If the value is an ID that must stay a string, copy the schema into your editor or Kafma and change its type before registering.
Why is a JSON key missing from the Protobuf schema?
Fields containing only null or empty arrays are omitted because their types cannot be inferred. Provide a concrete sample value and convert again.
Why does a mixed-type array cause an error?
A repeated field needs one element type. This converter rejects incompatible mixtures such as [1, "a"], but can combine compatible numeric types. Use a consistent element type or model the alternatives explicitly in your schema.
Why is the root message named Root?
The converter uses Root as a placeholder name. Copy the schema into your editor or Kafma, then rename it before registering.
How do I use this schema with Kafka?
Review the inferred field types and names, then register the schema in Kafka Schema Explorer. Use the registered schema to generate and serialize a payload in Kafka Console and produce it to a topic.
Is my input uploaded?
No. Conversion runs in your browser. Your input and generated output are not uploaded.
Can I generate sample JSON from a .proto schema?
Use the Proto to JSON converter to generate sample JSON from a .proto schema.