簡體   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