golang读取一个未知的Json

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
            param := []interface{}{}
            dec.Decode(&param)
            fmt.Println(param)
        case 123:
            // "{" 开头的Json
            param := make(map[string]interface{})
            dec.Decode(&param)
            fmt.Println(param)
        }
    }
}
func main() {
    UnknownJson(`{"a":1}`)
    UnknownJson(`[{"a":1},{"b":2}]`)
}

上面代码中的91和123分别是[和{符号对应的字符码。

发表评论

您的电子邮箱地址不会被公开。