异种类型结构如何解析

moryaden · · 862 次点击
这个从语义上就是[]interface{},没啥不优雅的地方。
#1
更多评论
但实际用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