GO语言的json输入(反序列化)之interfac{}存储

2021-05-16 09:27

阅读:492

标签:test   pack   slice   hand   any   var   handle   default   序列   

// code_032_json_unmarshal_to_interface project main.go package main import ( "encoding/json" "fmt" ) func main() { b := []byte(`{ "company":"tianmei", "subjects":[ "Go", "C++", "Python", "Test" ], "isok":true, "price":666.666 }`) //备注:subjects:["Test",]后面没有元素了,还有逗号会报错的。 var t interface{} err := json.Unmarshal(b, &t) if err != nil { fmt.Println("json err:", err) } fmt.Println(t) //使用断言判断类型 m := t.(map[string]interface{}) for k, v := range m { switch vv := v.(type) { case string: fmt.Println(k, "is string", vv) case int: fmt.Println(k, "is int", vv) case float64: fmt.Println(k, "is float64", vv) case bool: fmt.Println(k, "is bool", vv) case []interface{}: //slice类型的元素为interface{}接收 fmt.Println(k, "is an array:") for i, u := range vv { fmt.Println(i, u) } default: fmt.Println(k, "is of a type I don‘t know to handle") } } }

GO语言的json输入(反序列化)之interfac{}存储

标签:test   pack   slice   hand   any   var   handle   default   序列   

原文地址:http://blog.51cto.com/13914991/2294181


评论


亲,登录后才可以留言!