我有以下代码:
var buf []byte
read_len, err := conn.Read(buf)
if err != nil {
fmt.Println("Error reading:", err.Error())
}
buffer := make([]byte, read_len)
_, err = conn.Read(buffer)
if err != nil {
fmt.Println("Error reading:", err.Error())
}
目的是确定read_len第一个buf,然后创建第二个buffer,这是传入 json 请求的确切长度。这只会导致错误
JSON 输入意外结束
当我尝试解组时
var request Device_Type_Request_Struct
err = json.Unmarshal(buffer, &request)
我假设发生此错误是因为conn.Read(buffer)没有返回任何内容,因为另一个缓冲区已经读取了它(虽然不确定)。我应该如何确定 json 请求的长度,同时又能够将其读入缓冲区(长度完全相同)?
喵喔喔
相关分类