Golang json 解组

我是围棋新手。我有这样的json:


{

  "3415": {

    "age": 25,

    "name": "Tommy"

  },

  "3414": {

    "age": 21,

    "name": "Billy"

  }

}

我想将其解组为结构:


type People struct {

    Id map[string]PeopleDetails

}


type PeopleDetails struct {

    Age int `json:"age"`

    Name string `json:"name"`

}

但是当我运行它时,我看到该结构返回 nil 值。我确实阅读了一些教程,但其中大多数都有预定义的键,如您在此处看到的“id”,例如每个新 json 的 3415 都不同。


拉莫斯之舞
浏览 124回答 2
2回答

红颜莎娜

当您必须处理“动态”json 键时,答案是使用结构映射。您可以使用以下代码:package mainimport (    "encoding/json"    "fmt")// Use the struct pointed by @Adiriotype People map[string]PeopleDetailstype PeopleDetails struct {    Age  int    `json:"age"`    Name string `json:"name"`}var data string = `{"3415":{"age":25,"name":"Tommy"},"3414":{"age":21,"name":"Billy"}}`func main() {    var p People    if err := json.Unmarshal([]byte(data), &p); err != nil {        fmt.Println(err)    }    fmt.Println(p)}GoPlayground: https: //play.golang.org/p/kVzNV56NcTd

元芳怎么了

尝试使用这些类型:type People map[string]PeopleDetailstype PeopleDetails struct {    Age int `json:"age"`    Name string `json:"name"`}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go