当前位置: > > > > 将一部分接口转换为 golang 中的 io.Reader 对象?
将一部分接口转换为 golang 中的 io.Reader 对象?
来源:stackoverflow
2024-04-20 15:27:32
0浏览
收藏
亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《将一部分接口转换为 golang 中的 io.Reader 对象?》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。
问题内容
我正在尝试进行此数据转换,但我陷入困境。我有这个 json 请求正文:
{
"city": "xyz",
"vouchers" :[
{
"vouchercode": "vouchera",
"amount": 1000
},
{
"vouchercode": "voucherb",
"amount":23
}
]
}
我想要获取 vouchers json 数组并将其作为请求有效负载传递给另一个 api。目前我这样做是为了获取 vouchers 数组:
type vouchers struct {
Vouchers []interface{} `json:"vouchers" form:"vouchers"`
}
vouchers := vouchers{}
json.Unmarshal(reqBody, &vouchers)
这为我提供了 vouchers 对象,但如何将其转换为 io.reader 对象并将其作为有效负载发送到另一个 api?
正确答案
感谢 discord gophers 频道上的一些帮助,找到了解决该问题的方法。 vouchers json对象可以被解组到json.rawmessage类型的字段中,然后可以在bytes.newreader中传递。
type vouchers struct {
Vouchers json.RawMessage `json:"vouchers" form:"vouchers"`
}
vouchers := vouchers{}
json.Unmarshal(reqBody, &vouchers)
稍后可以使用 bytes.newreader(vouchers.vouchers) 将其作为有效负载传递给另一个 api。
以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持米云!更多关于Golang的相关知识,也可关注米云公众号。
