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

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

將 Golang JSON 存儲(chǔ)到 Postgresql

將 Golang JSON 存儲(chǔ)到 Postgresql

Go
慕妹3146593 2021-08-16 16:21:35
我想將某個(gè)結(jié)構(gòu)存儲(chǔ)到我的數(shù)據(jù)庫(kù)中,其中包含一個(gè) JSON 字段。type Comp struct {    CompId               int64           `db:"comp_id" json:"comp_id"`    StartDate            time.Time       `db:"start_date" json:"start_date"`    EndDate              time.Time       `db:"end_date" json:"end_date"`    WeeklySchedule       json.RawMessage `db:"weekly_schedule" json:"weekly_schedule"`}該表的架構(gòu)是:CREATE TABLE IF NOT EXISTS Tr.Comp(    comp_id                 SERIAL,    start_date              timestamp NOT NULL,    end_date                timestamp NOT NULL,    weekly_schedule         json NOT NULL,    PRIMARY KEY (comp_id));我在我的項(xiàng)目中使用 sqlx 和 lib/pq 驅(qū)動(dòng)程序,以下將不會(huì)執(zhí)行。相反,它恐慌地說(shuō)有一個(gè) nil 指針。DB 是一個(gè)全局*sqlx.DB結(jié)構(gòu)    tx := DB.MustBegin()    compFixture := Comp{        StartDate:            time.Now(),        EndDate:              time.Now().AddDate(1, 0, 0),        WeeklySchedule:       json.RawMessage([]byte("{}")),    }    _, err = tx.NamedExec(        `INSERT INTO             Tr.Comp(comp_id,                 start_date, end_date, weekly_schedule)             VALUES (DEFAULT,                 :start_date, :end_date, :weekly_schedule)              RETURNING comp_id;`, compFixture)    if err != nil {        t.Fatal("Error creating fixture.", err)    }當(dāng)我weekly_schedule從架構(gòu)和夾具中刪除時(shí),一切正常。但是由于某種原因,當(dāng)包含此字段時(shí),程序會(huì)出現(xiàn)混亂。關(guān)于我應(yīng)該如何weekly_schedule在我的數(shù)據(jù)庫(kù)架構(gòu)和 Go 結(jié)構(gòu)中定義字段的任何想法?
查看完整描述

3 回答

?
蕭十郎

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

從 go 文檔:

json.RawMessage is a raw encoded JSON object. It implements Marshaler and Unmarshaler and can be used to delay JSON decoding or precompute a JSON encoding.

如果您在包 json json.RawMessage 中提供的示例中 log.Printf("%#", colors) 您可以看到在解組 json 對(duì)象 'Point'-member 后未解組而是保留 []byte 格式,直到color-format 是固定的,'Point' 被明確地解組。

在將它放入數(shù)據(jù)庫(kù)之前,您是否嘗試過解組 WeeklySchedule 之類的東西?


查看完整回答
反對(duì) 回復(fù) 2021-08-16
  • 3 回答
  • 0 關(guān)注
  • 358 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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