我正在实现一个 gRPC API,并希望添加 JSON 正文数据作为响应。
所以我试过:
type Message struct {
Subject string `json:"subject"`
Body interface{} `json:"body"`
}
原型3
message Message {
string subject = 1;
string body = 2;
}
接口代码:
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"},
}