roc*_*tas 5 json go unmarshalling
我是Go的新手,我试图通过向Unmarshal提供结构来解码json blob.麻烦的是,我不知道某些钥匙.我可以解析以下内容
{"age":21,"Travel":{"fast":"yes","sick":false} }
Run Code Online (Sandbox Code Playgroud)
像这样
type user struct {
Age int
Travel TravelType
}
type TravelType struct {
Fast string
Sick bool
}
func main() {
src_json := []byte(`{"age":21,"travel":{"fast":"yes","sick":false}}`)
u := user{}
err := json.Unmarshal(src_json, &u)
if err != nil {
panic(err)
}
fmt.Printf("%v", u)
}
Run Code Online (Sandbox Code Playgroud)
获得 {21 {yes false}}
但是,我不明白我会如何接近这样的事情 -
{
"age":21,
"Travel":
{
"canada":
{"fast":"yes","sick":false},
"bermuda":
{"fast":"yes","sick":false},
"another unknown key name":
{"fast":"yes","sick":false},
}
}
Run Code Online (Sandbox Code Playgroud)
没有在结构中明确宣布"加拿大","百慕大"等.我如何使用Unmarshal来解析上面的json?我找到了这个答案,但没看到它是如何实现的
你可以解组成一个map[string]TravelType.将你的user结构改为这个,你应该好好去:
type user struct {
Age int
Travel map[string]TravelType
}
Run Code Online (Sandbox Code Playgroud)
这是Go Playground上的一个有效的概念验证:http://play.golang.org/p/-4k9GE5ZlS
| 归档时间: |
|
| 查看次数: |
2089 次 |
| 最近记录: |