登录
首页 >  Golang >  Go问答

将一部分接口转换为 golang 中的 io.Reader 对象?

来源:stackoverflow

时间:2024-04-20 15:27:32 135浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《将一部分接口转换为 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学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>