code: func (bj *BinaryJSON) UnmarshalJSON(data []byte) error {
  	var decoder = json.NewDecoder(bytes.NewReader(data))
  	decoder.UseNumber()
  	var in interface{}
  	err := decoder.Decode(&in)
  	if err != nil {
  		return errors.Trace(err)
  	}
  	buf := make([]byte, 0, len(data))
  	var typeCode TypeCode
  	typeCode, buf, err = appendBinary(buf, in)
  	if err != nil {
  		return errors.Trace(err)
  	}
  	bj.TypeCode = typeCode
  	bj.Value = buf
  	return nil
  }
docs: // UnmarshalJSON implements the json.Unmarshaler interface.