如何在 Golang 的映射字符串数据结构中将 json 正文请求传递给 api?

我是 golang 和 grpc 的新手,需要指导和说明。我将以下定义作为参数来调用外部 API 的 POST 请求。


    params := map[string]string{

    "movie":       movie,

    "seat":         seat,

    "pax": fmt.Sprint(pax),

    "class":      class,

}

在原型文件中,我有以下内容:


message TicketData {

    string movie= 1;

    string seat= 2;

    uint32 pax= 3;

    string class = 4;

}


message SearchMovieRequest {

    TicketData data= 1;

}

但是在 POSTMAN(grpc 请求)中,正文请求显示如下:


{

    "data": 

        {

            "movie": "abc",

            "seat": "123",

            "pax": 2,

            "class ": "b""

        }

   

}

请求正文应如下:


{

    "data": **[**

        {

            "movie": "abc",

            "seat": "123",

            "pax": 2,

            "class ": "b""

        }

    **]** - missing brackets in my json body

}

我试过使用 structpb 和映射字符串接口。它似乎不起作用。任何指针将不胜感激。谢谢你。


肥皂起泡泡
浏览 89回答 1
1回答

元芳怎么了

您希望该data字段为repeated TicketData.请参阅Protobuf语言指南 (proto3)中的指定字段规则。具体来说:message TicketData {    string movie= 1;    string seat= 2;    uint32 pax= 3;    string class = 4;}message SearchMovieRequest {    repeated TicketData data= 1;}注意虽然您包含了 protobuf 定义,但您的示例是 JSON。Protobuf 实现通常包括 protobuf 和 JSON 之间的自动映射——我假设——你正在展示的是什么。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go