Golang使用动态键解析json

Golang使用动态键解析json,go,Go,我有一个json字符串,如下所示: j := `{"bvu62fu6dq": { "name": "john", "age": 23, "xyz": "weu33s" ..... .....} }` 我想从上面的json字符串中提取name和age的值。我查看了在golang站点给出的示例 但我的问题是,顶层json中的关键是动态的。这意味着bvu62fu6dq是动态的。我

我有一个json字符串,如下所示:

j := `{"bvu62fu6dq": {
           "name": "john",
           "age": 23,
           "xyz": "weu33s"
           .....
           .....}
      }`
我想从上面的json字符串中提取
name
age
的值。我查看了在golang站点给出的示例

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

 type Info struct {
   UniqueID map[string]string
 }
type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

type Info map[string]Person

但不确定如何提取
姓名
年龄
。我的代码在

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

 type Info struct {
   UniqueID map[string]string
 }
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)

完整示例:

正如我所说,我的钥匙是动态的,它不会总是
bvu62fu6dq
,因此我不能使用
info[“bvu62fu6dq”]。Name
当然,info是一个普通地图。您可以迭代所有键或访问任何特定键,这与maps@JVK如果有其他键与bvu62fu6dq平行,如何执行此操作。e、 g{“bvu62fu6dq”:{“姓名”:“约翰”,“年龄”:23岁,},“城市”:“新泽西州”}`