我试图做这个数据转换,但我卡住了。我有这个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。