只需实现
json.Marshaler接口:
func main() { var err error = JsonErr{errors.New("expected")} json.NewEnprer(os.Stdout).Enpre(err)}type JsonErr struct { error}func (t JsonErr) MarshalJSON() ([]byte, error) { return []byte(`{"error": "` + t.Error() + `"}`), nil}它不起作用的原因是因为
json.Marshal没有检测到错误接口,并且大多数错误类型都没有导出的字段,因此反射无法显示这些字段。



