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, ¶msMap); 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格式的方法