从#6716分配。
您正在使用的Go版本是什么(go version
)?
go1.9.2 linux/amd64
这个问题在最新版本中是否会重现?
是的
您正在使用什么操作系统和处理器架构(go env
)?
GOARCH="amd64"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
您做了什么?
运行https://play.golang.org/p/YnlDi-3DMP
如果可能,请提供一个重现错误的食谱。
一个完整的可运行程序很好。
play.golang.org上的链接是最好的。
您期望看到什么?
带有错误信息的字段名
您实际上看到了什么?
没有字段名的错误
4条答案
按热度按时间jhkqcmku1#
在这里,我希望看到的是json.Unmarshal返回的错误具有一致性。例如,始终返回一个json.UnmarshalTypeError,该错误可能还包含对底层错误的引用以及与错误条件相关的现有值、类型、偏移量、结构和字段信息。这样做,而不是仅仅将底层错误向上冒泡(在这种情况下是一个time.ParseError),可以使处理解组错误更加一致。
最近在一个项目中,我确实需要这样做,所以我复制了encoding/json包,并在decoder.go中做了以下更改:
加号表示添加,减号表示减少。
尽管如此,我只在测试中做了几个小改动,就让它们全部通过了。公平地说,我不确定我已经覆盖了所有可能的代码路径。
1u4esq0p2#
这是向数组函数中添加的几行代码,用于为数组添加字段上下文。
第一列为加号,表示添加的内容
unftdfkk3#
这是为数组函数添加的几行代码,用于为数组添加字段上下文。
列0中的加号表示添加
你是否尝试提交PR以进行此更改?
hs1rzwqc4#
我可以为这个问题提交一个PR。