繁体   English   中英

在golang中将接口切片转换为io.Reader对象?

[英]Convert a slice of interface to an io.Reader object in golang?

我正在尝试进行此数据转换,但被卡住了。 我有这个 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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM