// NewEncoder delegates to json.NewEncoder // It is only here so this package can be a drop-in for common encoding/json uses func NewEncoder(w io.Writer) *json.Encoder { … } // Marshal delegates to json.Marshal // It is only here so this package can be a drop-in for common encoding/json uses func Marshal(v interface{ … } const maxDepth … // Unmarshal unmarshals the given data. // Object keys are case-sensitive. // Numbers decoded into interface{} fields are converted to int64 or float64. func Unmarshal(data []byte, v interface{ … } // ConvertInterfaceNumbers converts any json.Number values to int64 or float64. // Values which are map[string]interface{} or []interface{} are recursively visited func ConvertInterfaceNumbers(v *interface{ … } // ConvertMapNumbers traverses the map, converting any json.Number values to int64 or float64. // values which are map[string]interface{} or []interface{} are recursively visited func ConvertMapNumbers(m map[string]interface{ … } // ConvertSliceNumbers traverses the slice, converting any json.Number values to int64 or float64. // values which are map[string]interface{} or []interface{} are recursively visited func ConvertSliceNumbers(s []interface{ … } // convertNumber converts a json.Number to an int64 or float64, or returns an error func convertNumber(n json.Number) (interface{ … }