You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go+ReactJS WebSocket场景下不影响运行的JSON解析错误原因问询

问题:Go开发WebSocket服务对接React客户端出现非中断性JSON解析报错

首次使用Go开发WebSocket服务,对接的客户端为ReactJS单页应用,遇到报错Uncaught SyntaxError: Unexpected token l in JSON at position 0,但程序并未中断,仍能正常执行后续逻辑。

客户端JS代码

const socket = new WebSocket("ws://localhost:5000/ws");
setConnection(socket);

socket.onmessage = (e) => {
    const message = JSON.parse(e.data)
    console.log("message:", message)

    switch (message.Command) {
      case "loginResult":
        if (message.Result) {
          console.log("login worked");
        }else{
          console.log("login did not work");
        }
        break;
    }
  }

服务端Go发送消息代码

result := ws.LoginResult{
    BaseMessage: ws.BaseMessage{
        Command: "loginResult",
    },
    Result: false,
}

b, err := json.Marshal(result)

if err != nil {
    fmt.Println(err)
    return
}

if err = conn.WriteMessage(msgType, b); err != nil {
    return
}

控制台输出日志

in here
WebsocketProvider.tsx:20 message: {Command: 'loginResult', Result: false}
WebsocketProvider.tsx:27 login did not work
VM3502:1 Uncaught SyntaxError: Unexpected token l in JSON at position 0
    at JSON.parse (<anonymous>)
    at WebSocket.socket.onmessage (WebsocketProvider.tsx:19)
socket.onmessage @ WebsocketProvider.tsx:19

问题成因与解决方案

  • 该问题由代码迁移过程中遗留的无效调用语句导致,该语句执行时被忽略,因此不影响主逻辑运行;
  • 问题与JSON格式无关,相关JSON由Go标准库自动生成,格式合规。

内容的提问来源于stack exchange,提问作者Jake Chapman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:27:03