Go语言:读取一个未知的Json(支持数组型Json)

代码实例:


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]`)
}

你可能感兴趣的:(Go语言:读取一个未知的Json(支持数组型Json))