Golang编码/ json Marshaler

时间:2015-06-26 13:25:38

标签: go interface

encoding/json包文档中所述,

  

Marshal以递归方式遍历值v。   如果遇到的值实现了Marshaler接口   并且不是nil指针,Marshal调用它的MarshalJSON方法   生成JSON。

这次测试究竟在哪里in the code

另一方面,encoding/json如何检查v类型的值t是否实现了Marshaller接口?

1 个答案:

答案 0 :(得分:2)

这里:

Golang encoding/json Marshaler

if t.Implements(marshalerType) {
    return marshalerEncoder
}

编辑: 上面的链接已更新为指向特定版本的Go,正如@ dave-c在下面的评论中指出的那样。