Golang invalid character ‘\x00‘ after top-level value

Golang invalid character ‘\x00’ after top-level value

1 概述

当我们无法无法判断需要创建的字节切片A的长度的时候,通常会创建一个较大长度的空字节切片B来接收未知长度的字节,当使用json.Unmarshal解析字节的时候,就会出现 panic invalid character ‘\x00’ after top-level value 的错误,这是因为B切片的长度实际大于A所需的长度,Json读取到nil的时候,会停止继续读取, 造成多出一个\x00,而json无法解析\x00

错误日志

2020/07/31 13:44:14 [Recovery] 2020/07/31 - 13:44:14 panic recovered:
POST /price HTTP/1.1
Host: localhost:8080
Accept: */*
Accept-Encoding: gzip, deflate, br
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 133
Content-Type: application/json
Postman-Token: 97f9e99a-4e28-4d3b-a241-372efbcf4ee4
User-Agent: PostmanRuntime/7.26.2


invalid character '\x00' after top-level value
D:/Library/Code/Projects/cloud-price/main.go:23 (0xa9a0ee)
	main.func1: panic(err)
C:/Users/Mist/go/pkg/mod/github.com/gin-gonic/gin@v1.6.3/context.go:161 (0xa7a91f)
	(*Context).Next: c.handlers[c.index](c)
C:/Users/Mist/go/pkg/mod/github.com/gin-gonic/gin@v1.6.3/recovery.go:83 (0xa96ca7)
	RecoveryWithWriter.func1: c.Next()
C:/Users/Mist/go/pkg/mod/github.com/gin-gonic/gin@v1.6.3/context.go:161 (0xa7a91f)
	(*Context).Next: c.handlers[c.index](c)
C:/Users/Mist/go/pkg/mod/github.com/gin-gonic/gin@v1.6.3/logger.go:241 (0xa9578b)
	LoggerWithConfig.func1: c.Next()
C:/Users/Mist/go/pkg/mod/github.com/gin-gonic/gin@v1.6.3/context.go:161 (0xa7a91f)
	(*Context).Next: c.handlers[c.index](c)
C:/Users/Mist/go/pkg/mod/github.com/gin-gonic/gin@v1.6.3/gin.go:409 (0xa878bb)
	(*Engine).handleHTTPRequest: c.Next()
C:/Users/Mist/go
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值