带有错误接口函数的Golang unmarshal结构

时间:2017-10-20 12:41:11

标签: go

我尝试从错误接口投诉的结构中执行Unmarshal,但是当我尝试获取Res结构错误内容时,它会返回错误接口字符串。

  

示例(错误界面抱怨):https://play.golang.org/p/ZZDTMSXYO7

结果:2009/11/10 23:00:00 C: -> {Data:{Title:Lorem Ipsum data} Error:}

  

示例(没有错误接口抱怨):https://play.golang.org/p/VmS0xIglC0

预期:2009/11/10 23:00:00 C: -> {Data:{Title:Lorem Ipsum data} Error:{Title:Lorem Ipsum error}}

任何人都可以帮助我们吗?

1 个答案:

答案 0 :(得分:3)

带有log.Printf格式的

%+v会在实现Error接口的值上调用error方法,这与Error类型的情况相同。因此,不是打印值的内容,而是打印Error方法返回的字符串,在您的示例中为空字符串。

但这并不意味着unmarshaler没有正确解组json,你可以通过将格式化动词更改为%#v或仅打印Title字段来看到。

https://play.golang.org/p/PgFCDnySb9