有这么一个json结构
```json
[
[1122334455, "11", "22", "33"],
[1234, "11", "22", "33"],
[1234, "11", "22", "33"]
]
```
用interface{}去接,虽然能解析出来,但类型不对。
有没有更优雅的办法呢?
下面的是我最挫的办法
```golang
var resp = make([]interface{}, 0)
err = json.Unmarshal(body, &resp)
```
更多评论
但实际用interface自动接收到的,第一个类型会识别成float64,还需要自己转换成int,后续的都是字符串。
后续代码我是这样写的。
比直接送一个struct引用进去复杂了很多,很丑。
```golang
func main() {
var data = `[[
152551818000,
"9945.0001",
"9955",
"9933.2443",
"9933.2444",
"59.82917335"
],
[
152551836000,
"9933.2444",
"9933.2444",
"9910.0001",
"9910.0001",
"90.72357222"
]]`
var arr = make([]interface{}, 0)
err := json.Unmarshal([]byte(data), &arr)
if err != nil {
log.InfoError(err)
return
}
for _, item := range arr {
switch t := item.(type) {
case []interface{}:
ts := t[0]
switch realvalue := ts.(type) {
case float64:
var v int
v = int(realvalue)
log.Infof("ts = %v", v)
}
default:
log.Info("uknown type")
}
}
}
```
#2