我正在使用 ajson.Decoder来解码通过网络流传递的 JSON。它工作正常,但是每当有人发送不符合架构的数据时(例如,当结构的字段类型为无符号时发送负整数),它会返回一个错误,并带有一条无法确定违规属性的模糊消息。这使得调试更加困难。
有没有办法提取解码器在出错时试图解组的 JSON?这是一个可重现的小片段:
package main
import (
"bytes"
"fmt"
"encoding/json"
)
func main() {
buff := bytes.NewBufferString("{\"bar\": -123}")
decoder := json.NewDecoder(buff)
var foo struct{
Bar uint32
}
if err := decoder.Decode(&foo); err != nil {
fmt.Println(err)
fmt.Println("TODO: how to get JSON that caused this error?")
} else {
fmt.Println(foo.Bar)
}
}
或在操场上:https : //play.golang.org/p/-WdYBkYEzJ
波斯汪
MMTTMM
哔哔one
相关分类