code: func UnmarshalJSON(bs []byte, x interface{}) (err error) {
  	buf := bytes.NewBuffer(bs)
  	decoder := NewJSONDecoder(buf)
  	return decoder.Decode(x)
  }
docs: // UnmarshalJSON parses the JSON encoded data and stores the result in the value
  // pointed to by x.
  //
  // This function is intended to be used in place of the standard json.Marshal
  // function when json.Number is required.