Protobuf → JSON

Protocol BuffersスキーマをサンプルJSONに変換、またはProtobufバイナリデータをJSONにデコード。proto3・ネストメッセージ・enumに対応。ブラウザ完結、データ送信なし。

100% クライアントサイド データはブラウザ外に出ません 無料 · 登録不要
JSON Output
JSON output will appear here.

使い方

Schema → サンプルJSON(デフォルトモード)

  1. 左パネルに.protoスキーマを貼り付けます。
  2. ツールが全メッセージタイプを自動検出してドロップダウンに表示します。
  3. メッセージタイプを選択し、JSONを生成をクリックします。
  4. デフォルト値を持つサンプルJSONが右側に表示されます。

バイナリ → JSONモード

  1. トグルでバイナリ → JSONモードに切り替えます。
  2. 上のテキストエリアに.protoスキーマを貼り付けます。
  3. 2番目のテキストエリアにバイナリデータ(hexまたはbase64)を貼り付けます。
  4. メッセージタイプを選択し、バイナリをデコードをクリックします。

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;
}

フィールドタイプ一覧

  • スカラー型:doublefloatint32int64uint32uint64boolstringbytes
  • 繰り返しフィールド:フィールドの前に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を推奨します。