代码实例:
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(¶m)
fmt.Println(param)
// fmt.Println(param[0]) // 使用一个值
// println(reflect.TypeOf(param[0]).String()) // 获取值的类型
case 123:
// "{" 开头的Json(对象型Json)
param := make(map[string]interface{})
dec.Decode(¶m)
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]`)
}