Golang 中国

数据库里存的是一个二维数组的json 格式如下
[[{a:1, b:2},{a: 1, b:2}],[{a:1},{a:1}]]
我想转换成map 或者 切换能range它 试了下 怎么操作都没有成功!请教下大伙!


myxingke 于 2018-04-13 16:19 修改
1 回复
xialeistudio
#1 xialeistudio • 2018-04-14 22:56
package main

import (
    "os"
    "log"
    "encoding/json"
    "fmt"
)

func main() {
    fp, err := os.Open("a.json")
    if err != nil {
        log.Fatal(err)
    }
    defer fp.Close()
    list := make([]interface{}, 0)
    if err := json.NewDecoder(fp).Decode(&list); err != nil {
        log.Fatal(err)
    }
    for _, item := range list {
        sublist, ok := item.([]interface{})
        if !ok {
            continue
        }
        for _, subitem := range sublist {
            mapData, ok := subitem.(map[string]interface{})
            if !ok {
                continue
            }
            a, ok := mapData["a"]
            if !ok {
                continue
            }
            fmt.Println(a.(float64))
            b, ok := mapData["b"]
            if !ok {
                continue
            }
            fmt.Println(b.(float64))
        }
    }
}
需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。