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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

從 Golang 中的 postgres jsonb 列訪問值

從 Golang 中的 postgres jsonb 列訪問值

Go
白板的微信 2022-10-24 09:41:21
我從 postgres 得到一個(gè) jsonb 列,它的價(jià)值類似于{"a": 123,"b": "some str","c": {"d": 23},"e": {"f":34, "g", 434}}如何訪問密鑰 a、b、d、f、g?謝謝編輯:獲取 jsonb 列“vars”:type Msg struct{    Id int    Vars map[string]interface{}}queryToGetD := "select id, vars from msg_table"if rows, errRow := db.Query(queryToGetD); errRow != nil {    return nil, fmt.Errorf("error while getting data \nquery %s \nerror %s", queryToGetD, err)} else {    func (){        defer rows.Close()        for rows.Next(){            var msg Msg            var vars string            if err := rows.Scan(&msg.Id, &vars); err != nil{                // handle error                continue            }else{                if err := json.Unmarshal([]byte(vars), &msg.Vars); err != nil {                    // handle error                    continue                }                // Add msg to the needed slice            }        }    }}
查看完整描述

1 回答

?
米脂

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊

msg.Vars["a"]對(duì)于 a和b 您可以msg.Vars["b"]分別訪問這些值。對(duì)于 d、f 和 g,您需要首先訪問它們的父項(xiàng),就像訪問 a 和 b 一樣。然后,您需要對(duì)該類型的map[string]interface{}訪問結(jié)果進(jìn)行類型斷言,然后通過類型斷言的結(jié)果訪問所需的字段。


fmt.Println(msg.Vars["a"]) // access a

fmt.Println(msg.Vars["b"]) // access b


c := msg.Vars["c"].(map[string]interface{}) // access c and type-assert as map[string]interface{}

fmt.Println(c["d"]) // then access d

https://go.dev/play/p/oZERUsL2EUY


或者使用與 json 匹配的結(jié)構(gòu),然后您可以使用選擇器表達(dá)式訪問字段


type Vars struct {

    A int    `json:"a"`

    B string `json:"b"`

    C struct {

        D int `json:"d"`

    } `json:"c"`

    E struct {

        F int `json:"f"`

        G int `json:"g"`

    } `json:"e"`

}


// ...


fmt.Println(msg.Vars.A)

fmt.Println(msg.Vars.B)

fmt.Println(msg.Vars.C.D)

fmt.Println(msg.Vars.E.F)

fmt.Println(msg.Vars.E.G)

https://go.dev/play/p/6ur78SNB_bL


查看完整回答
反對(duì) 回復(fù) 2022-10-24
  • 1 回答
  • 0 關(guān)注
  • 109 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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