// jdec is used internally by the JSON decoding functions // so they may unmarshal functions without getting into endless // recursion due to keyed objects. func jdec(data []byte, value interface{}) error { d := json.NewDecoder(bytes.NewBuffer(data)) d.Extend(&funcExt) return d.Decode(value) }
// UnmarshalJSON unmarshals a JSON value that may hold non-standard // syntax as defined in BSON's extended JSON specification. func UnmarshalJSON(data []byte, value interface{}) error { d := json.NewDecoder(bytes.NewBuffer(data)) d.Extend(&jsonExt) return d.Decode(value) }