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

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

如何在 GO 中訪問 JSON 的字段

如何在 GO 中訪問 JSON 的字段

Go
慕少森 2021-12-20 10:06:56
大家好,我想看看在 go 中從 http.get 請求訪問 json 對象字段的正確方法是什么。我首先做一個 http.get 調用獲取 JSON 然后打印它(它有效)但是有沒有辦法只訪問一個字段?例如:response, err:= http.Get("URL")//Error checking is done betweencontents, err:=ioutil.Readall(response.Body)//Now at this point I have a json that looks like{"id": "someID", "name": "someName", "test": [{"Name":"Test1",           "Result": "Success"},         {"Name":"Test2",           "Result": "Success"},         {...},]}有沒有辦法只打印 Json 的“測試”?訪問該字段的正確方法是什么?
查看完整描述

3 回答

?
交互式愛情

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

使用encoding/jsonpackage 將數據解組為結構體,如下所示。


type Result struct {

    ID   string        `json:"id"`

    Name string        `json:"name"`

    Test []interface{} `json:"test"`

}


var result Result

json.Unmarshal(contents, &result)

fmt.Println(result.Test)

您還可以解析Test為特定的結構。


查看完整回答
反對 回復 2021-12-20
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

與上一個答案相同,使用 encoding/json 包解組數據。但是如果你不想指定結構,你可以使用 map[string]interface/bson.M{} 來接收數據,并獲取字段,然后轉換為你想要的類型。


m := make(map[string]interface{})

err := json.Unmarshal(data, &m)

if err != nil {

    log.Fatal(err)

}

fmt.Println(m["id"])


查看完整回答
反對 回復 2021-12-20
?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

如果您只想訪問一個字段,那么您可以使用 jsonq 模塊https://godoc.org/github.com/jmoiron/jsonq

對于您的示例,您可以使用類似于

jq.Object("test")

其中 jq 是從上面的 JSON 構造的 jsonq 查詢對象(有關如何從 JSON 流或字符串創建查詢對象的說明,請參閱 godoc 頁面)。

您還可以使用此庫來檢索 JSON 對象內任意深度的特定字符串、整數、浮點數和布爾值。


查看完整回答
反對 回復 2021-12-20
  • 3 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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