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

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

有沒有辦法使用 Go 將 JSON 字符串轉(zhuǎn)換為 Mongo 擴(kuò)展 JSON?

有沒有辦法使用 Go 將 JSON 字符串轉(zhuǎn)換為 Mongo 擴(kuò)展 JSON?

Go
慕無忌1623718 2022-05-05 17:53:06
我有一個包含一些字符串的示例 JSON 正文。我希望將一些字符串轉(zhuǎn)換為 Mongo Extended JSON。例如傳入的 JSON 正文如下:{    "GuidBinary": "734cba69-4851-4869-8d0e-e870d6fb3065",    "DateTime": "12/12/2012",    "RegularString": "abcd"}我想把它轉(zhuǎn)換成{    "GuidBinary": {        "$binary": {            "base64": "<payload>",            "subType": 0x03        }    },    "DateTime": {"$date": "<ISO-8601 Date/Time Format>"},    "RegularString": "abcd"}有沒有辦法在 Go 中做到這一點(diǎn),無論是通過像 mongo-go-driver 這樣的包還是其他方法?
查看完整描述

1 回答

?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗 獲得超4個贊

是的,這是可能的。它是官方mongo-go驅(qū)動程序的一部分。生成此擴(kuò)展 JSON將作為bson.MarshalExtJSON()函數(shù)發(fā)布。


使用它的示例:


m := map[string]interface{}{

    "GuidBinary":    []byte{1, 2, 3, 4, 5},

    "DateTime":      time.Now(),

    "RegularString": "abcd",

}


out, err := bson.MarshalExtJSON(m, false, false)

fmt.Println(string(out), err)

這將輸出(在Go Playground上嘗試):


{"DateTime":{"$date":"2009-11-10T23:00:00Z"},"RegularString":"abcd",

    "GuidBinary":{"$binary":{"base64":"AQIDBAU=","subType":"00"}}} <nil>

所以你需要做的是解組你的原始JSON(使用encoding/json包),你需要對它做一些后期處理:GuidBinary是輸入JSON中的一個常規(guī)字符串,但它代表一個UUID。您需要將其解析為 UUID 值(可能有很多庫)。


您還需要轉(zhuǎn)換(解析)DateTime輸入中的 JSON 文本,但它表示日期。用于time.Parse()此。現(xiàn)在您可以調(diào)用bson.MarshalExtJSON()生成擴(kuò)展的 JSON。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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