这是因为 json.Unmarshal() 的第一个参数为【】的时候,json包会认为这不是一个正确的json包,因此会报错unexpected end of JSON input
错误示例:
func test6() {
var respBytes = []byte("")
var jsonData []interface{}
err := json.Unmarshal(respBytes, &jsonData)
if err != nil {
fmt.Println(err)
}
fmt.Println(jsonData)
}
解决办法: 在使用json.Unmarshal时候,我们先对respBytes进行判断
if len(respBytes) == 0{
return nil
}