func (httpUrl *HttpURL) UnmarshalJSON(data []byte) error {
	var url string
	if err := json.Unmarshal(data, &url); err != nil {
		return err
	}
	value := HttpURL(url)
	if err := value.Validate(); err != nil {
		return err
	}
	*httpUrl = value
	return nil
}
UnmarshalJSON unmarshall implementation for Email
package url
import (
	"database/sql/driver"
	"encoding/json"
	"fmt"
	"strings"
	"github.com/asaskevich/govalidator"
)
type URL string
func (url URL) Value() (value driver.Value, err error) {
	if url == "" {
		return "", nil
	}
	if err = url.Validate(); err != nil {
		return nil, err
	}
	return url.String(), nil
}
func (url URL) Validate() error {
	if !govalidator.IsURL(url.String()) {
		return fmt.Errorf("'%s' is not a valid url", url)
	}
	return nil
}
func (url *URL) UnmarshalJSON(data []byte) error {
	var str string
	if err := json.Unmarshal(data, &str); err != nil {
		return err
	}
	value := URL(str)
	if err := value.Validate(); err != nil {
		return err
	}
	*url = value
	return nil
}
func (url URL) String() string {
	return string(url)
}
type HttpURL string
func (httpUrl HttpURL) Value() (value driver.Value, err error) {
	if httpUrl == "" {
		return "", nil
	}
	if err = httpUrl.Validate(); err != nil {
		return nil, err
	}
	return httpUrl.String(), nil
}
func (httpUrl HttpURL) Validate() (err error) {
	if len(httpUrl) == 0 {
		return fmt.Errorf("'%s' is not a valid http url", httpUrl)
	}
	if err = validateSchema(httpUrl.String()); err != nil {
		return err
	}
	return URL(httpUrl).Validate()
}