15

メッセージのシリアル化にProtocol Buffersを使用しようとしています。

メッセージ形式には Map< String, Object > エントリを含める必要がありますが、.proto 定義をどのように記述すればよいですか?

私の知る限り、Protocol Buffers には組み込みの Map タイプがありません。繰り返しフィールドを使用して、それをモデル化できます。しかし、私が抱えている大きな問題は、すべての型を定義する必要があるということです。メッセージを柔軟にしたいので、タイプを指定できません。

何か案は?

4

1 に答える 1

10

キーと値を持つタプルをモデル化します (おそらく、値が可能な型ごとに 1 つの値フィールド)。次に、そのタプルタイプの繰り返しリストを作成します。マップ自体をコードで作成する必要があります。

タイプを指定できないと言うとき、どのようなタイプについて話しているのですか? タプルに各タイプのオプションのフィールドがある場合、それはすべてのプリミティブに対応し、メッセージをバイト文字列にシリアル化することでメッセージをマップできます。

あなたが持っている「構造化されていない」レベルは、PBには適していないように思えますが。

于 2009-07-09T10:09:30.363 に答える