第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢索嵌套 Json 數(shù)組的第一條記錄

檢索嵌套 Json 數(shù)組的第一條記錄

Go
慕桂英3389331 2021-08-23 15:43:47
我正在嘗試解析嵌入式 JSON 數(shù)組中的第一條記錄,并基于這些屬性的子集創(chuàng)建一個對象。我有這個工作,但基于這個問題,我不得不認(rèn)為有一種更優(yōu)雅/更不脆弱的方式來做到這一點。有關(guān)更多背景信息,這是調(diào)用musicbrainz JSON Web 服務(wù)的結(jié)果集,我將第一條artists記錄視為我正在尋找的藝術(shù)家。JSON 的格式是這樣的:{    "created": "2014-10-08T23:55:54.343Z",    "count": 458,    "offset": 0,    "artists": [{        "id": "83b9cbe7-9857-49e2-ab8e-b57b01038103",        "type": "Group",        "score": "100",        "name": "Pearl Jam",        "sort-name": "Pearl Jam",        "country": "US",        "area": {            "id": "489ce91b-6658-3307-9877-795b68554c98",            "name": "United States",            "sort-name": "United States"        },        "begin-area": {            "id": "10adc6b5-63bf-4b4e-993e-ed83b05c22fc",            "name": "Seattle",            "sort-name": "Seattle"        },        "life-span": {            "begin": "1990",            "ended": null        },        "aliases": [],        "tags": []    },    ...}這是我到目前為止的代碼。我希望能夠使用我的ArtistCollection類型來解決一些問題interface{},但我不知道如何使用。我也不想費心映射藝術(shù)家記錄的所有屬性,我只對"name"和"id"值感興趣。package mainimport (    "fmt"    "encoding/json"    )type Artist struct {    Id string    Name string}type ArtistCollection struct {    Artists []Artist}func main() {    raw := //json formatted byte array    var topLevel interface{}    err := json.Unmarshal(raw, &topLevel)    if err != nil {        fmt.Println("Uh oh")    } else {        m := topLevel.(map[string]interface{})        //this seems really hacky/brittle, there has to be a better way?        result := (m["artists"].([]interface{})[0]).(map[string]interface{})        artist := new(Artist)        artist.Id = result["id"].(string)        artist.Name = result["name"].(string)        fmt.Println(artist)    }}
查看完整描述

1 回答

?
月關(guān)寶盒

TA貢獻1772條經(jīng)驗 獲得超5個贊

定義與 JSON 結(jié)構(gòu)匹配的類型并解組為該類型的值。我在下面使用匿名類型。使用長度為 1 的數(shù)組來獲取第一條藝術(shù)家記錄:


package main


import (

    "encoding/json"

    "fmt"

)


type Artist struct {

    Id   string

    Name string

}


func main() {

    raw := // JSON formatted byte array

    var result struct {

        Artists artist

    }

    err := json.Unmarshal(raw, &result)

    if err != nil {

        fmt.Println(err)

        return

    }

    fmt.Printf("%#v\n", result.Artists[0])

}


查看完整回答
反對 回復(fù) 2021-08-23
  • 1 回答
  • 0 關(guān)注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號