http://play.golang.org/p/f6ilWnWTjm
我正在尝试解码以下字符串,但仅获取空值。
如何在Go中解码嵌套的JSON结构?
我想将以下内容转换为地图数据结构。
package main import ( "encoding/json" "fmt" ) func main() { jStr := ` { "AAA": { "assdfdff": ["asdf"], "fdsfa": ["1231", "123"] } } ` type Container struct { Key string `json:"AAA"` } var cont Container json.Unmarshal([]byte(jStr), &cont) fmt.Println(cont) }
在Go中使用嵌套结构来匹配JSON中的嵌套结构。
这是一个如何处理示例JSON的示例:
package main import ( "encoding/json" "fmt" "log" ) func main() { jStr := ` { "AAA": { "assdfdff": ["asdf"], "fdsfa": ["1231", "123"] } } ` type Inner struct { Key2 []string `json:"assdfdff"` Key3 []string `json:"fdsfa"` } type Container struct { Key Inner `json:"AAA"` } var cont Container if err := json.Unmarshal([]byte(jStr), &cont); err != nil { log.Fatal(err) } fmt.Printf("%+v\n", cont) }
游乐场链接
您还可以对内部结构使用匿名类型:
type Container struct { Key struct { Key2 []string `json:"assdfdff"` Key3 []string `json:"fdsfa"` } `json:"AAA"` }
或外部和内部结构:
var cont struct { Key struct { Key2 []string `json:"assdfdff"` Key3 []string `json:"fdsfa"` } `json:"AAA"` }
如果您不知道内部结构中的字段名称,请使用地图:
type Container struct { Key map[string][]string `json:"AAA"` }
http://play.golang.org/p/gwugHlCPLK
还有更多选择。希望这能使您走上正确的道路。