Protobuf の値フィールドを使用して JSON をデコードする
指定された問題は、google.protobuf として定義された Protobuf struct フィールドに JSON をアンマーシャルしようとすると発生します。 。価値。根本的な問題は、このようなフィールドを処理する際のエンコーディング/json ライブラリと Protobuf ライブラリ間の非互換性です。
これを克服するには、Protobuf プロジェクトが提供する専用の protojson ライブラリを活用することをお勧めします。 protojson.Unmarshal 関数を使用すると、Value フィールドを含む JSON データを対応する Protobuf 構造体に正しくデコードできるようになります。
ここに、protojson.Unmarshal 関数の使用法を示す更新されたコード スニペットを示します。
<code class="go">req := &proto.JobCreateRequest{} err := protojson.Unmarshal(bytes, req)</code>
この変更により問題が解決され、提供された JSON データを JobCreateRequest 構造体の Data フィールドに正常に入力できるようになります。
以上が値フィールドを含む JSON を Protobuf 構造体にデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。