package main import ( "encoding/json" "fmt" "strings" ) func UnknownJson(data string) { if data != `` { r := strings.NewReader(data) dec := json.NewDecoder(r) switch data[0] { case 91: // "[" 开头的Json(数组型Json) param := []interface{}{} dec.Decode(&param) fmt.Println(param) // fmt.Println(param[0]) // 使用一个值 // println(reflect.TypeOf(param[0]).String()) // 获取值的类型 case 123: // "{" 开头的Json(对象型Json) param := make(map[string]interface{}) dec.Decode(&param) fmt.Println(param) // fmt.Println(param[`a`]) // 使用一个值 // println(reflect.TypeOf(param[`a`]).String()) // 获取值的类型 } } } func main() { UnknownJson(`{"a":1}`) UnknownJson(`[{"a":1},{"b":2}]`) UnknownJson(`[1,2,3,4]`) }