gpt4 book ai didi

javascript - Golang 后端到 javascript JSON Parse

转载 作者:IT王子 更新时间:2023-10-29 02:11:16 26 4
gpt4 key购买 nike

我正在为 golang 使用 gorilla websocket 库:http://www.gorillatoolkit.org/pkg/websocket

这是我用来创建 websocket 连接的代码:

conn, err := upgrader.Upgrade(w, r, nil)

将 JSON 从 golang 发送到 javascript 时出现问题。我可以让它工作,但必须执行看似不必要的步骤。以下是不起作用的 golang 后端的基础知识:

    type clientDB struct{
ChunksWritten int64
ChunksRead int64
BytesWritten int64
BytesRead int64
DataBytesWritten int64
DataBytesRead int64
ActivePeers int
TotalPeers int
TorrentHashString string
}

fullClientDB := new(clientDB) //creating a new clientDB struct

b, err := json.Marshal(fullClientDB)
if err != nil {
fmt.Println(err)
return
}


conn.WriteJSON(b)

当我在 javascript 中使用 JSON.parse 时,我得到以下响应:

var clientUpdate = JSON.parse(evt.data);

eyJDaHVua3NXcml0dGVuIjowLCJDaHVua3NSZWFkIjowLCJCeXRlc1dyaXR0ZW4iOjU0NDgxLCJCeXRlc1JlYWQiOjc4NzgyLCJEYXRhQnl0ZXNXcml0dGVuIjowLCJEYXRhQnl0ZXNSZWFkIjowLCJBY3RpdmVQZWVycyI6MCwiVG90YWxQZWVycyI6NDMsIlRvcnJlbnRIYXNoU3RyaW5nIjoiOWY5MTY1ZDlhMjgxYTliOGU3ODJjZDUxNzZiYmNjODI1NmZkMTg3MSJ9

我可以通过以下更改让它工作:

conn.WriteJSON(string(b))

然后在 javascript 中我实际上解析了两次数据。

var clientUpdate = JSON.parse(evt.data);
var clientUpdateJSON = JSON.parse(clientUpdate);

之后,我可以将数据作为 JSON 对象正确访问。关于通过 websockets 将 JSON 对象从 golang 发送到 javascript,我是否遗漏了什么?

最佳答案

gorilla websocket package自动编码为 JSON,因此使用标准库进行编码也只是将其编码两次,导致它显示为 base64。

谢谢大家!

关于javascript - Golang 后端到 javascript JSON Parse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46435740/

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