我正在编写一个 Go 程序,其中我只是使用 - 从服务器获取响应
tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
client := &http.Client{Transport: tr}
link := "address of server"
resp, err := client.Get(link)
Run Code Online (Sandbox Code Playgroud)
现在我需要将 resp 转换为字节,以便我可以将其传递给某个函数,而另一端可以将其解码为相同的结构。resp 是 http 包中定义的 http.Response 类型的结构,我无法更改。
我想直接将其转换为字节。
golang中是否有我可以直接使用的此类函数,或者是否有任何方法可以执行相同的操作。
您想使用go 库中的编码包。通常我喜欢 JSON 编码,因为它非常易于阅读,但该包支持多种格式之间的编码,包括二进制和gob,这是一种专为您想要执行的操作而设计的格式。
go文档中编码为 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)
}
Run Code Online (Sandbox Code Playgroud)
go文档中从 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)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27012 次 |
| 最近记录: |