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(¶m)
fmt.Println(param)
case 123:
// "{" 开头的Json
param := make(map[string]interface{})
dec.Decode(¶m)
fmt.Println(param)
}
}
}
func main() {
UnknownJson(`{"a":1}`)
UnknownJson(`[{"a":1},{"b":2}]`)
}
上面代码中的91和123分别是[和{符号对应的字符码。