遍历嵌套的JSON结构

时间:2014-03-06 06:40:42

标签: json go traversal

我想遍历嵌套的JSON结构,并从接口{}

获取每个键和值

http://play.golang.org/p/B-B3pejGJW

所以我想从以下结构

    {
        "tg": {
            "A": {
                "E": 100,
                "H": 14
            },
            "B": {
                "D": 1
            },
            "C": {
                "D": 1,
                "E": 1
            },
            "D": {
                "F": 1,
                "G": 1,
                "H": 1
            },
            "E": {
                "G": 1
            }
        }
    }

我能够得到以下

a := js.Get("tg").Get("D").Get("F")
fmt.Println(*a) // {1}

但是在类型上有问题时断言这是整数。

     invalid type assertion: (*a).(int)

如何遍历整个结构并从字符中获取映射的每个整数?

谢谢!

1 个答案:

答案 0 :(得分:1)

您的价值将被编组为float64。另外,您不是访问a.data而是访问a,而不是访问导致错误的结构。

fmt.Printf("%#v\n", a)              // &main.JSON{data:1}
fmt.Println(reflect.TypeOf(a.data)) // float64
x := int(a.data.(float64))