在golang中将结构转换为字节数据,反之亦然

我正在编写一个 Go 程序,其中我只是使用 -


tr := &http.Transport{

        TLSClientConfig: &tls.Config{InsecureSkipVerify: true},

    }

client := &http.Client{Transport: tr}

link := "address of server"

resp, err := client.Get(link)

现在我需要将 resp 转换为字节,以便我可以将其传递给某个函数,而另一方可以将其解码为相同的结构。resp 是 http 包中定义的 http.Response 类型的结构,我无法更改。


我想直接将其转换为字节。


golang 中是否有任何这样的函数可以直接使用,或者是否有任何方法可以做到这一点。


qq_遁去的一_1
浏览 193回答 3
3回答

宝慕林4294392

你想使用go 库中的encode包。通常我喜欢 JSON 编码,因为它非常易读,但该包支持编码到/从许多格式,包括二进制和gob,这是一种专为您尝试做的事情而设计的格式。go文档中编码为 json 的示例:package mainimport (    "encoding/json"    "fmt"    "os")func main() {    type ColorGroup struct {        ID     int        Name   string        Colors []string    }    group := ColorGroup{        ID:     1,        Name:   "Reds",        Colors: []string{"Crimson", "Red", "Ruby", "Maroon"},    }    b, err := json.Marshal(group)    if err != nil {        fmt.Println("error:", err)    }    os.Stdout.Write(b)}go文档中从 json 解码的示例:package mainimport (    "encoding/json"    "fmt")func main() {    var jsonBlob = []byte(`[        {"Name": "Platypus", "Order": "Monotremata"},        {"Name": "Quoll",    "Order": "Dasyuromorphia"}    ]`)    type Animal struct {        Name  string        Order string    }    var animals []Animal    err := json.Unmarshal(jsonBlob, &animals)    if err != nil {        fmt.Println("error:", err)    }    fmt.Printf("%+v", animals)}

慕田峪4524236

http.Response 涉及太多,无法转换为字节然后恢复。但是对于简单的结构,您可以考虑使用专为以下目的设计的gob:要通过网络传输数据结构或将其存储在文件中,必须对其进行编码,然后再次解码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go