0

私は gRPC API を実装しており、応答として JSON 本文データをそのまま追加したいと考えていました。

だから私は試しました:

type Message struct {
    Subject string `json:"subject"`
    Body    interface{}  `json:"body"`
}

proto3

message Message {
    string subject = 1;
    string body = 2;
}

API コード:

    en, err := client.Request.Get(req.Name)
    if err != nil {
        return nil, status.Error(codes.InvalidArgument, err.Error())
    }

    data, _ := json.Marshal(en.Body)

    return &response.Message{
        Subject: en.Subject,
        Body:    string(data),
    }, nil

これを追加した後、gRPC API 応答を取得します。

{
  "subject": "dev",
  "body": "{\"name\":\"environment\",\"description\":\"The default environment\"}",
}

問題は、本文の JSON キー値が動的であることです。次のような応答を得る方法はありますか

{
  "subject": "dev",
  "body": {"name":"environment","description":"The default environment"},
}

4

2 に答える 2