String To Int

import "strconv"  //先导入strconv包

string转成int:
int, err := strconv.Atoi(string)

string转成int64:
int64, err := strconv.ParseInt(string, 10, 64)

int转成string:
string := strconv.Itoa(int)

int64转成string:
string := strconv.FormatInt(int64,10)

int or float64

fmt.Sprint 返回传递给它的任何变量的字符串格式

pi := fmt.Sprint(3.14)
num := fmt.Sprint(1)
or
fmt.Sprintf("%v", 3.14) // "3.14"
fmt.Sprintf("%v", 1) // "1"

interface{}

var params interface{}
params.(string)
params.(int)
params.(float64)

map[string]interface{} to url.values

因为传入json用map[string]interface{}接收参数时会出现以下情况

json golang
bool bool
number float64
array []interface{}
object map[string]interface{}
string string
null nil

主要对float64进行强制转换:int(v.(float64))

paramsMap := make(map[string]interface{})
if err := json.Unmarshal(requestData, &paramsMap); err != nil {
log.Errorf("json.Unmarshal error %v", err)
return
}

verifyParams := make(url.Values)
for k, v := range paramsMap {
switch v.(type) {
case string:
verifyParams.Add(k, v.(string))
case int:
value := strconv.Itoa(v.(int))
verifyParams.Add(k, value)
case float64:
value := strconv.Itoa(int(v.(float64)))
verifyParams.Add(k, value)
}
}

参考文献

使用Go语言解析动态JSON格式的方法