Go语言中各种数据格式转换
Go语言各种数据类型格式转换
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)) // string to float32、float64 f_32, _ := strconv.ParseFloat("3.1415", 32) f_64, _ := strconv.ParseFloat("3.1415", 64) fmt.Printf("%T\n", f_32) // float64 fmt.Printf("%T\n", f_64) // int到string s1 := strconv.Itoa(11) fmt.Println(reflect.TypeOf(s1)) // int64到string s2 := strconv.FormatInt(11,10) fmt.Println(reflect.TypeOf(s2)) // float32/64 to string s3 := strconv.FormatFloat(3.1415, 'E', -1, 32) s4 := strconv.FormatFloat(3.1415, 'E', -1, 64) fmt.Println(reflect.TypeOf(s3)) fmt.Println(reflect.TypeOf(s4)) // int和int64 n_10_64 := int64(11) fmt.Println(reflect.TypeOf(n_10_64)) // int64 to int n_64_10 := int(n_10_64) 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] // 将结构体解析为字符串 str_user, _ := json.Marshal(user) fmt.Println(string(str_user))// {"id":1,"name":"wxnacy"} // 数组解析为字符串 str_a, _ := json.Marshal(a) fmt.Println(string(str_a)) // [1,2,3,4] <nil> // map解析为字符串 str_d, _ := json.Marshal(d) fmt.Println(string(str_d)) // {"id":1,"name":"wxnacy"} <nil> }