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