38

我有一个json字符串如下:

j := `{"bvu62fu6dq": {
           "name": "john",
           "age": 23,
           "xyz": "weu33s"
           .....
           .....}
      }`

我想从上面的 json 字符串中提取name和提取值。age我查看了在 golang 站点http://play.golang.org/p/YQgzP7KPp9给出的这个例子

但我的问题是顶级json中的关键是动态的。这意味着bvu62fu6dq是动态的。我创建了这样的结构:

 type Info struct {
   UniqueID map[string]string
 }

但不确定如何提取nameage. 我的代码在http://play.golang.org/p/Vbdkd3XIKc

4

1 回答 1

59

我相信你想要这样的东西:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

type Info map[string]Person

然后,解码后这个工作:

fmt.Printf("%s: %d\n", info["bvu62fu6dq"].Name, info["bvu62fu6dq"].Age)

完整示例:http ://play.golang.org/p/FyH-cDp3Na

于 2013-08-23T21:54:13.763 回答