go json解析问题 大牛们帮帮忙

json解析出来为nil ,对一个嵌套json操作,取里面的单独数据。

这是json数据:

{
    "code": 0,
    "data": {
        "song": {
            "count": 2,
            "itemlist": [{
                "albummid": "001ZaCQY2OxVMg",
                "docid": "4960718353595419009",
                "id": "108041208",
                "mid": "000lH7Do3X6Aot",
                "name": "雪阳",
                "singer": "鹿予"
            }, {
                "albummid": "001ZaCQY2OxVMg",
                "docid": "4277524965976373789",
                "id": "107195477",
                "mid": "0004snbm3ZMeFz",
                "name": "雪阳花",
                "singer": "林爽"
            }],
            "name": "单曲",
            "order": 0,
            "type": 1
        }
    },
    "subcode": 0
}

我试过了转结构体 取出来为nil
转各种类型也试过了,也是nil

求方案,怎么取

阅读 2.6k
1 个回答
新手上路,请多包涵

已经解决! 吐槽一下:审核真慢
嵌套结构体:

type SongSingle struct {
    Codes int `json:"code"`
    Date  struct {
        Song struct { // 音乐
            Count    int `json:"count"`
            Itemlist []struct {
                Albummid string `json:"albummid"`
                Docid    string `json:"docid"`
                Id       string `json:"id"`
                Mid      string `json:"mid"`
                Name     string `json:"name"`
                Singer   string `json:"singer"`
            } `json:"itemlist"`
            Name  string `json:"name"`
            Order int    `json:"order"`
            Type  int    `json:"type"`
        } `json:"song"`
        Album struct { // 专辑
            Count    int `json:"count"`
            Itemlist []struct {
                docid  string `json:"docid"`
                Id     string `json:"id"`
                Mid    string `json:"mid"`
                Name   string `json:"name"`
                Pic    string `json:"pic"`
                Singer string `json:"singer"`
            } `json:"itemlist"`
            Name  string `json:"name"`
            Order int    `json:"order"`
            Type  int    `json:"type"`
        } `json:"album"`
        Singer struct { // 歌手
            Count    int `json:"count"`
            Itemlist []struct {
                docid  string `json:"docid"`
                Id     string `json:"id"`
                Mid    string `json:"mid"`
                Name   string `json:"name"`
                Pic    string `json:"pic"`
                Singer string `json:"singer"`
            } `json:"itemlist"`
            Name  string `json:"name"`
            Order int    `json:"order"`
            Type  int    `json:"type"`
        } `json:"singer"`
        Mv struct { // mv
            Count    int `json:"count"`
            Itemlist []struct {
                docid  string `json:"docid"`
                Id     string `json:"id"`
                Mid    string `json:"mid"`
                Name   string `json:"name"`
                Singer string `json:"singer"`
                Vid    string `json:"vid"`
            } `json:"itemlist"`
            Name  string `json:"name"`
            Order int    `json:"order"`
            Type  int    `json:"type"`
        } `json:"mv"`
        Name  string `json:"name"`
        Order int    `json:"order"`
        Type  int    `json:"type"`
    } `json:"data"`
    Subcode int `json:"subcode"`
}

遍历结构体取值:

Sbody := string(body)
var arrayData SongSingle
if err := json.Unmarshal([]byte(Sbody), &arrayData); err == nil {

// fmt.Println("码:", arrayData.Subcode)
// fmt.Println("子码:", arrayData.Subcode)
for _, Songitem := range arrayData.Date.Song.Itemlist {
    fmt.Println("专辑ID:", Songitem.Albummid)
    fmt.Println("  ID  :", Songitem.Id)
    fmt.Println("歌曲ID:", Songitem.Mid)
    fmt.Println("歌  名:", Songitem.Name)
    fmt.Println("歌  手:", Songitem.Singer)
    fmt.Println("\n")
}

} else {

fmt.Println(err)

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题