Go语言中string,int,int64,以及string,struct、数组,map互相转换
package main import ( "encoding/json" "fmt" "reflect" "strconv" ) type User struct { Id int `json:"id"` Name string `json:"name"` } func main() { //string到int n10, _ := strconv.Atoi("12") fmt.Println(reflect.TypeOf(n10)) // string到int64 n64, _ := strconv.ParseInt("12", 10, 64) fmt.Println(reflect.TypeOf(n64)) // int到string s1 := strconv.Itoa(11) n_10_64 := int64(11) fmt.Println(reflect.TypeOf(s1)) fmt.Println(reflect.TypeOf(n_10_64)) // int64到string s3 := strconv.FormatInt(11,10) n_64_10 := int(n_10_64) fmt.Println(reflect.TypeOf(s3)) fmt.Println(reflect.TypeOf(n_64_10)) // 字符串解析为结构体 s := `{"id": 1, "name": "wxnacy"}` // 将字符串反解析为结构体 var user User json.Unmarshal([]byte(s), &user) fmt.Println(user) // {1 wxnacy} // 将字符串反解析为字典 var d map[string]interface{} json.Unmarshal([]byte(s), &d) fmt.Println(d) // map[id:1 name:wxnacy] // 将字符串反解析为数组 s = `[1, 2, 3, 4]` var a []int json.Unmarshal([]byte(s), &a) fmt.Println(a) // [1 2 3 4] // 将结构体解析为字符串 b, e := json.Marshal(user) fmt.Println(e) fmt.Println(string(b)) // {"id":1,"name":"wxnacy"} b, e = json.Marshal(a) fmt.Println(string(b), e) // [1,2,3,4] <nil> b, e = json.Marshal(d) fmt.Println(string(b), e) // {"id":1,"name":"wxnacy"} <nil> }