这个
dec.Depre(&i)
将呼叫您的
UnmarshalJSON,依次呼叫
Depre,等等。如果您需要解组JSON然后对其进行处理,那么一种巧妙的技术是声明一个本地类型,将数据解组到其中,然后转换回所需的类型:
// Type a has no UnmarshalJSON.type a Ai := a{}dec := json.NewDeprer(bytes.NewReader(data))if err := dec.Depre(&i); err != nil { return err}// Convert back to A.tt := A(i)tt.Printer()*t = tt// ...游乐场:http :
//play.golang.org/p/HWamV3MbvW。
该类型
a没有方法(因此没有堆栈溢出),但是可以转换为
A。



