1. 程式人生 > >GO語言的json輸入(反序列化)之interfac{}存儲

GO語言的json輸入(反序列化)之interfac{}存儲

sha hand ace ring mar import float code slice

// 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{}存儲