在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/GO  Linux/ go json解析問題 大牛們幫幫忙

go json解析問題 大牛們幫幫忙

json解析出來為nil ,對一個嵌套json操作,取里面的單獨數(shù)據(jù)。

這是json數(shù)據(jù):

{
    "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
}

我試過了轉(zhuǎn)結(jié)構(gòu)體 取出來為nil
轉(zhuǎn)各種類型也試過了,也是nil

求方案,怎么取

回答
編輯回答
黑與白

已經(jīng)解決! 吐槽一下:審核真慢
嵌套結(jié)構(gòu)體:

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"`
}

遍歷結(jié)構(gòu)體取值:

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)

}

2017年3月1日 16:03