DevToolsmith

JSON to Protobuf

Infer a compilable proto3 schema from JSON samples.

Runs 100% in your browser — nothing is uploaded

Input
Tip: drop a file here84 chars · 84 bytes · 1 line
Result
0 chars · 0 bytes · 0 lines

Up to 200,000 input characters and 2 million output characters. Processing stays on this device.

Use JSON to Protobuf

Infer a compilable proto3 schema from JSON samples. Start with the sample, select the options and run the tool. Copy or download the result after reviewing it.

Behavior and limits

Infer a compilable proto3 schema from JSON samples. Field numbers are allocated from sample order and are not stable across schema edits. Integers choose signed/unsigned 64-bit types when possible; wider numeric values use string fields and must be converted to decimal strings before encoding. Unions, null-only fields and nested arrays use google.protobuf.Value, whose numeric variant uses double precision. This is a draft: review wire compatibility and field-number evolution before production.

Example input

{"id":1,"name":"Ada","tags":["developer"],"address":{"city":"London"},"active":true}

Expected behavior for the example

Produces Root and Address messages, repeated string tags and a bool active field.

Check important output in the application that will consume it. Use the tool directory to find related formats and tasks.

Frequently asked questions

How does JSON to Protobuf handle my input?

Infer a compilable proto3 schema from JSON samples. Field numbers are allocated from sample order and are not stable across schema edits. Integers choose signed/unsigned 64-bit types when possible; wider numeric values use string fields and must be converted to decimal strings before encoding. Unions, null-only fields and nested arrays use google.protobuf.Value, whose numeric variant uses double precision. This is a draft: review wire compatibility and field-number evolution before production.

Is my input uploaded or saved automatically?

Processing runs locally in this browser. Input and results are not saved automatically. Downloads happen only when you choose them. The static preview blocks scripts and external resources when one is available.