func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) {
	b, err := Marshal(v)
	if err != nil {
		return nil, err
	}
	var buf bytes.Buffer
	err = json.Indent(&buf, b, prefix, indent)
	if err != nil {
		return nil, err
	}
	return buf.Bytes(), nil
}
MarshalIndent is like Marshal but applies Indent to format the output.
package safejson
import (
	"bytes"
	"encoding/json"
)
func Marshal(v interface{}) ([]byte, error) {
	var buf bytes.Buffer
	if err := Encoder(&buf).Encode(v); err != nil {
		return nil, err
	}
	return bytes.TrimSuffix(buf.Bytes(), []byte{'\n'}), nil
}