Protobuf → JSON
Protocol BuffersスキーマをサンプルJSONに変換、またはProtobufバイナリデータをJSONにデコード。proto3・ネストメッセージ・enumに対応。ブラウザ完結、データ送信なし。
使い方
Schema → サンプルJSON(デフォルトモード)
- 左パネルに
.protoスキーマを貼り付けます。 - ツールが全メッセージタイプを自動検出してドロップダウンに表示します。
- メッセージタイプを選択し、JSONを生成をクリックします。
- デフォルト値を持つサンプルJSONが右側に表示されます。
バイナリ → JSONモード
- トグルでバイナリ → JSONモードに切り替えます。
- 上のテキストエリアに
.protoスキーマを貼り付けます。 - 2番目のテキストエリアにバイナリデータ(hexまたはbase64)を貼り付けます。
- メッセージタイプを選択し、バイナリをデコードをクリックします。
Proto3構文クイックリファレンス
syntax = "proto3";
package myapp;
message User {
string id = 1;
string name = 2;
int32 age = 3;
repeated string roles = 4;
Address address = 5;
UserStatus status = 6;
}
message Address {
string street = 1;
string city = 2;
string country_code = 3;
}
enum UserStatus {
UNKNOWN = 0;
ACTIVE = 1;
INACTIVE = 2;
}
フィールドタイプ一覧
- スカラー型:
double、float、int32、int64、uint32、uint64、bool、string、bytes - 繰り返しフィールド:フィールドの前に
repeatedを付ける — JSON配列に対応 - ネストメッセージ:別のメッセージタイプをフィールド型として使用
- enum:
enumで定義、最初の値は必ず0 - oneof:グループ内の1つのフィールドのみ同時に設定可能
プライバシー
処理はすべてクライアント側で行われます。スキーマとバイナリデータはアップロードも保存もされません。
FAQ
Protocol Buffers(Protobuf)とは何ですか?
Protocol BuffersはGoogleが開発した言語・プラットフォーム非依存の構造化データシリアライズ機構です。JSON/XMLより高速・コンパクトな代替手段として使われます。.protoファイルにデータ構造を定義し、生成されたコードで読み書きします。
データはサーバーに送信されますか?
いいえ。すべての解析・デコードはprotobufjsライブラリによりブラウザ内で完結します。スキーマとバイナリデータはデバイス外に出ません。
「Schema → サンプルJSON」モードとは?
.protoスキーマを貼り付けてメッセージタイプを選択すると、デフォルト値(空文字列・ゼロ・空配列)を持つサンプルJSONが生成されます。実データなしにメッセージ構造を確認したい場合に便利です。
「バイナリ → JSON」は何の形式を受け付けますか?
16進数(例: 0a 05 41 6c 69 63 65)とBase64エンコードのProtobufバイナリデータ両方を受け付けます。16進数のスペースやコロンは自動的に無視されます。
どのproto構文がサポートされていますか?
主にproto3が対象です。proto2の基本的な構文も内部のprotobufjsライブラリで処理できますが、proto3を推奨します。