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

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

Go 的范圍不能超過 <my var>(類型 interface {})

Go 的范圍不能超過 <my var>(類型 interface {})

Go
慕森王 2021-10-25 20:17:41
我正處于嘗試圍繞 Go 進(jìn)行思考的嬰兒階段。目前,我正在模擬一個 API 請求,該請求返回一個包含對象數(shù)組的 JSON 格式的字符串。我試圖找出最合適的方法來迭代每個記錄并訪問每個字段。最終,每個字段都將寫入 Excel 電子表格,但現(xiàn)在我只想打印每個字段的鍵和值。這是我所擁有的(我會在 Go Playground 中提供它,但不支持 HTTP 請求):    response, err := http.Get("http://go-proto.robwilkerson.org/demo.json")    failOnError(err, "Uh oh")    defer response.Body.Close()    var view []interface{}    json.NewDecoder(response.Body).Decode(&view)    log.Printf(" [x] Pulled JSON: %s", view)    for _, record := range view {        log.Printf(" [===>] Record: %s", record)        for key, val := range record {            log.Printf(" [========>] %s = %s", key, val)        }    }一切正常,直到嵌套循環(huán)嘗試迭代map保存每條記錄的屬性:cannot range over record (type interface {})我有兩個問題,我想:嵌套循環(huán)是訪問每條記錄的每個屬性的最有效/最高效的方法嗎?我需要做什么來解決這個錯誤?更新當(dāng)我將解碼的數(shù)據(jù)轉(zhuǎn)儲到view變量中時,這是記錄的結(jié)果:[    map[id:ef14912f-8031-42b3-8c50-7aa612287534 avatar:http://placehold.it/32x32 name:Vilma Hobbs email:vilmahobbs@exiand.com phone:+1 (886) 549-3522 address:471 Dahill Road, Jacksonwald, Alabama, 6026]     map[id:1b7bf182-2482-4b8b-8210-9dc9ee51069e avatar:http://placehold.it/32x32 name:Anne Dalton email:annedalton@exiand.com phone:+1 (994) 583-2947 address:660 Macdougal Street, Ticonderoga, Alaska, 7942]     map[id:f8027852-f52e-4bbb-bc9d-fb5e34929b40 avatar:http://placehold.it/32x32 name:Amie Ray email:amieray@exiand.com phone:+1 (853) 508-3649 address:878 Kane Street, Derwood, Minnesota, 3826]     map[id:b9842ab7-5053-48b4-a991-f5c63af8fb7e avatar:http://placehold.it/32x32 name:Hope Benton email:hopebenton@exiand.com phone:+1 (938) 542-2232 address:396 Osborn Street, Rowe, Massachusetts, 702]     map[id:8f9f6d8d-d14e-4ddc-acb2-eb96d3c3d7a8 avatar:http://placehold.it/32x32 name:Janine Kidd email:janinekidd@exiand.com phone:+1 (877) 474-2633 address:173 Manhattan Court, Hall, Virginia, 7376]     map[avatar:http://placehold.it/32x32 name:Kristen Yang email:kristenyang@exiand.com phone:+1 (862) 469-3446 address:203 Doughty Street, Westmoreland, Rhode Island, 849 id:210a6ae6-8227-4f26-a47c-448c400f26e9] ]
查看完整描述

1 回答

?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗 獲得超5個贊

未聲明類型時 json 包將解碼為的默認(rèn)值是:


bool, for JSON booleans

float64, for JSON numbers

string, for JSON strings

[]interface{}, for JSON arrays

map[string]interface{}, for JSON objects

nil for JSON null

由于每個record(在您的示例中)都是一個 json 對象,因此您可以map[string]interface{}像這樣斷言每個對象:


for _, record := range view {

    log.Printf(" [===>] Record: %s", record)


    if rec, ok := record.(map[string]interface{}); ok {

        for key, val := range rec {

            log.Printf(" [========>] %s = %s", key, val)

        }

    } else {

        fmt.Printf("record not a map[string]interface{}: %v\n", record)

    }

}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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