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

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

為此 JSON 創(chuàng)建結(jié)構(gòu)時遇到問題

為此 JSON 創(chuàng)建結(jié)構(gòu)時遇到問題

Go
慕姐4208626 2022-09-26 14:57:59
我對golang非常非常陌生(使用這個項(xiàng)目作為更好地學(xué)習(xí)語言的一種方式)。我有一個想要從中提取數(shù)據(jù)的api,但我似乎無法為它創(chuàng)建正確類型的結(jié)構(gòu)。我試圖編碼的完整JSON位于此處。https://prices.runescape.wiki/api/v1/osrs/latestJSON 的結(jié)構(gòu)為{  "data": {    "2": {      "high": 182,      "highTime": 1621811749,      "low": 180,      "lowTime": 1621811755    },    "6": {      "high": 186683,      "highTime": 1621811083,      "low": 184528,      "lowTime": 1621811286    },    ... REPEATS THOUSANDS OF TIMES ...  }}我嘗試過對 JSON 數(shù)據(jù)使用 JSON 到 Go 轉(zhuǎn)換器,但這會返回一個完全太大的結(jié)構(gòu)。(轉(zhuǎn)到返回錯誤)我嘗試手動制作一個帶有切片的結(jié)構(gòu),如下所示type osrsPrices []struct {    ID struct {        High     int `json:"high"`        Hightime int `json:"highTime"`        Low      int `json:"low"`        Lowtime  int `json:"lowTime"`    } `json:"id"`}每當(dāng)我嘗試從終端運(yùn)行此命令時,我都會看到錯誤“json:無法將對象取消封入main.osrs類型的Go值退出狀態(tài)1”這是我正在使用的整個代碼package mainimport (    "encoding/json"    "fmt"    "io/ioutil"    "log"    "net/http"    "time")type osrsPrices []struct {    ID struct {        High     int `json:"high"`        Hightime int `json:"highTime"`        Low      int `json:"low"`        Lowtime  int `json:"lowTime"`    } `json:"id"`}func main() {    url := "https://prices.runescape.wiki/api/v1/osrs/latest"    spaceClient := http.Client{        Timeout: time.Second * 2, // Timeout after 2 seconds    }    req, err := http.NewRequest(http.MethodGet, url, nil)    if err != nil {        log.Fatal(err)    }    req.Header.Set("User-Agent", "skillerscape:LearningGoLang|priceChecker")    res, getErr := spaceClient.Do(req)    if getErr != nil {        log.Fatal(getErr)    }    if res.Body != nil {        defer res.Body.Close()    }    body, readErr := ioutil.ReadAll(res.Body)    if readErr != nil {        log.Fatal(readErr)    }    items := osrsPrices{}    jsonErr := json.Unmarshal(body, &items)    if jsonErr != nil {        log.Fatal(jsonErr)    }    for _, item := range items {        fmt.Println(item)    }}我很確定該錯誤與我嘗試處理數(shù)據(jù)的方式有關(guān),但是盡管經(jīng)過幾個小時的谷歌搜索,但我無法直接解決問題,也無法解決問題。我感謝任何人在這個問題上的任何幫助。
查看完整描述

1 回答

?
蝴蝶刀刀

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個贊

在最深層次上,您擁有:


type Price struct {

   High     int `json:"high"`

   Hightime int `json:"highTime"`

   Low      int `json:"low"`

   Lowtime  int `json:"lowTime"`

}

這是在具有可變鍵的對象中,因此您需要:


type Data struct {

   Data map[string]Price `json:"data"`

}

然后,您可以取消編組到此結(jié)構(gòu)的實(shí)例中:


var data Data

json.Unmarshal(input,&data)


查看完整回答
反對 回復(fù) 2022-09-26
  • 1 回答
  • 0 關(guān)注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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