5

次のページに従って、json ペイロードで送信できるはずです: https://developers.google.com/protocol-buffers/docs/proto3 「JSON マッピング」の下。

メッセージの一部として json ペイロードを送信したいのですが、次の .proto ファイルがあります。

message EventsRequest{
    message RequestElement {
        struct payload = 1;
    }
    string customerId = 1;
    repeated RequestElement jsonPayload = 2;
}


message EventsResponse {
    int32 status = 1;
    string rawResponseData = 2;
    struct responseData = 3;
}

しかし、それをコンパイルすると、次のエラーが発生します。

[INFO] Compiling 1 proto file(s) to C:\workspace\...\target\generated-sources\protobuf\java
[ERROR] PROTOC FAILED: msg_service.proto:21:9: "struct" is not defined.
msg_service.proto:34:5: "struct" is not defined.

[ERROR] C:\workspace\...\src\main\proto\msg_service.proto [0:0]: msg_service.proto:21:9: "struct" is not defined.
msg_service.proto:34:5: "struct" is not defined.

「Struct」も試しましたが、同じエラーが発生しました。

使い方を誤解していますか?json ペイロードを送信する必要がある場合、文字列として渡す必要がありますか?

ありがとう

4

5 に答える 5

9

最後に、json ペイロードを表すために String を使用することになりました。

于 2017-01-05T23:22:12.140 に答える
0

Struct大文字である必要がありますS

于 2016-12-15T01:21:44.443 に答える
0

問題は、 google/protobuf/struct.proto から正しいメッセージをインポートできないことだと思うので、使用しました

google.protobuf.Struct field_name = 1

そしてそれは私のために働いた!!!

于 2021-12-30T07:17:11.233 に答える