gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:59:46 28 4
gpt4 key购买 nike

我正在编写一个 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 中是否有任何我可以直接使用的函数,或者是否有任何方法可以做到这一点。

最佳答案

您想使用 encode来自 go 库的包。通常我喜欢 JSON 编码,因为它非常易于阅读,但该包支持与多种格式之间的编码,包括二进制和 gob。这是一种专为您要执行的操作而设计的格式。

示例 documentation编码为json:

package main

import (
"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)
}

示例 documentation从 json 解码:

package main

import (
"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)
}

关于go - 在golang中将结构转换为字节数据,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26390503/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com