亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何從 API 獲取 JSON 并計算鴿子的數量

如何從 API 獲取 JSON 并計算鴿子的數量

Go
慕姐8265434 2022-05-23 16:21:17
所以我試圖從具有這種格式的 JSON 中獲取鴿子的數量。這個 JSON 包含很多鳥類類型,每一種都由他的顏色和最后聯系方式定義:{    "url": "http://localhost:9001/",    "pigeons": [        {            "color": "white",            "lastContact": "2020-03-23T14:46:20.806Z"        },        {            "color": "grey",            "lastContact": "2020-03-23T14:46:20.807Z"        }    ],    "parrots": [        {            "color": "green",            "lastContact": "2020-03-23T14:46:20.806Z"        }    ]}已經做了這段從 API 獲取 JSON 的代碼,但是由于我沒有任何 Go 經驗,你們能幫我從這里數一下鴿子的數量嗎?我真的不在乎其他鳥類的數量。package mainimport (    "encoding/json"    "fmt"    "io/ioutil"    "log"    "net/http"    "time")type pigeons struct {    Number int `json:"something"`}func main() {    url := "http://localhost:9001"    birdsClient := http.Client{        Timeout: time.Second * 2, // Maximum of 2 secs    }    req, err := http.NewRequest(http.MethodGet, url, nil)    if err != nil {        log.Fatal(err)    }    res, getErr := birdsClient.Do(req)    if getErr != nil {        log.Fatal(getErr)    }    body, readErr := ioutil.ReadAll(res.Body)    if readErr != nil {        log.Fatal(readErr)    }    pigeons1 := pigeons{}    jsonErr := json.Unmarshal(body, &pigeons1)    if jsonErr != nil {        log.Fatal(jsonErr)    }    fmt.Println(pigeons1.Number)}
查看完整描述

1 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

在返回的 JSON 文檔中,pigeons是一個數組,看起來該數組的長度是鴿子的數量。因此,如果您將其解組為一個接受鴿子數組的結構,您可以獲得它的長度:


type pigeons struct {

   Pigeons []interface{} `json:"pigeons"`

}

上面,您可以將pigeons字段解組為接口數組,因為您不關心字段的內容。如果您需要處理內容,則需要一個單獨的結構并使用它的數組。然后:


var p pigeons

json.Unmarshal(body, &p)

fmt.Printf("%d",len(p.Pigeons))


查看完整回答
反對 回復 2022-05-23
  • 1 回答
  • 0 關注
  • 76 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號