|
- package govalidator
-
- import (
- "encoding/json"
- "fmt"
- "reflect"
- "strconv"
- )
-
- // ToString convert the input to a string.
- func ToString(obj interface{}) string {
- res := fmt.Sprintf("%v", obj)
- return string(res)
- }
-
- // ToJSON convert the input to a valid JSON string
- func ToJSON(obj interface{}) (string, error) {
- res, err := json.Marshal(obj)
- if err != nil {
- res = []byte("")
- }
- return string(res), err
- }
-
- // ToFloat convert the input string to a float, or 0.0 if the input is not a float.
- func ToFloat(str string) (float64, error) {
- res, err := strconv.ParseFloat(str, 64)
- if err != nil {
- res = 0.0
- }
- return res, err
- }
-
- // ToInt convert the input string or any int type to an integer type 64, or 0 if the input is not an integer.
- func ToInt(value interface{}) (res int64, err error) {
- val := reflect.ValueOf(value)
-
- switch value.(type) {
- case int, int8, int16, int32, int64:
- res = val.Int()
- case uint, uint8, uint16, uint32, uint64:
- res = int64(val.Uint())
- case string:
- if IsInt(val.String()) {
- res, err = strconv.ParseInt(val.String(), 0, 64)
- if err != nil {
- res = 0
- }
- } else {
- err = fmt.Errorf("math: square root of negative number %g", value)
- res = 0
- }
- default:
- err = fmt.Errorf("math: square root of negative number %g", value)
- res = 0
- }
-
- return
- }
-
- // ToBoolean convert the input string to a boolean.
- func ToBoolean(str string) (bool, error) {
- return strconv.ParseBool(str)
- }
|