AZ Tools

JSON to Protobuf スキーマコンバーター (proto3)

開発

JSON オブジェクトや配列を貼り付けると、すぐに使える Protocol Buffers(proto3)スキーマが得られます。フィールドは proto スカラー型(string、int64、double、bool)にマッピングされ、配列は repeated フィールドに、ネストされたオブジェクトは個別の message になります。lower_snake_case でないキーには [json_name = "..."] オプションが追加され、標準 JSON マッピングが元のキーと一致します。すべてブラウザ内でローカルに実行され、JSON はアップロードされません。

Protobuf スキーマ

使い方

  1. 入力ボックスに JSON を貼り付けるか入力します。
  2. 必要に応じてルートメッセージ名を変更します(デフォルトは Message)。
  3. 出力ボックスから生成された .proto スキーマをコピーします。

よくある質問

数値はどう型付けされますか?
整数は int64、小数点を含む数値は double になります。別の幅が必要な場合は int32、uint32、float などに変更してください。
null、空配列、ネストされた配列はどうなりますか?
これらは google.protobuf.Value にマッピングされ(import "google/protobuf/struct.proto" が追加されます)、proto3 にはネイティブの null がなく、repeated repeated フィールドを許可しないためです。
一部のフィールドに json_name オプションがあるのはなぜですか?
proto フィールド名は lower_snake_case です。標準の camelCase JSON マッピングが元のキーを再現できない場合、[json_name = "..."] オプションが追加され JSON が正しく往復します。
私の JSON はどこかに送信されますか?
いいえ。変換は完全にブラウザ内で行われ、何もアップロードされません。

関連ツール