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

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

Go:如何在不解組的情況下傳遞 JSON 響應(yīng)

Go:如何在不解組的情況下傳遞 JSON 響應(yīng)

Go
慕斯709654 2022-12-13 10:41:03
使用 Go,我試圖從多個(gè)端點(diǎn)同時(shí)獲取一些 JSON 響應(yīng)。我想將這些響應(yīng)中的每一個(gè)附加到結(jié)構(gòu)或映射中的字段,并將此結(jié)構(gòu)/映射作為 JSON 對(duì)象返回。(前端模式的后端)。因此,我將使用某種標(biāo)識(shí)符向 Go 應(yīng)用程序發(fā)出 Web 請(qǐng)求。它會(huì)依次發(fā)出多個(gè) Web 請(qǐng)求,并將數(shù)據(jù)編譯成一個(gè)大對(duì)象以作為響應(yīng)返回。我使用 Fiber 作為我的框架,但任何通用的 Web 框架都是相似的:app.Get("/requests/:identifier", func(c *fiber.Ctx) error {    identifier := c.Params("identifier")    timeout := 1600 * time.Millisecond    client := httpclient.NewClient(httpclient.WithHTTPTimeout(timeout))    res, err := client.Get("https://www.example.com/endpoint?id=" + identifier, nil)    if err != nil{        logger.Error("Timout value exceeded")        return c.Status(503).SendString("Socket Timeout")    }    logger.Info("Fetch success: ")    // Heimdall returns the standard *http.Response object    body, err := ioutil.ReadAll(res.Body)    code := 200    response := &main_response{        Service1: body,    }    return c.Status(code).JSON(response)})我遇到的問題是,我不需要在 Go 中解組這些數(shù)據(jù),因?yàn)槲也恍枰ㄎ抑皇呛?jiǎn)單地傳遞它)。我是否必須解組它才能像這樣將它設(shè)置為我的響應(yīng)結(jié)構(gòu)中的一個(gè)字段?type main_response struct {    Service1 []byte `json:"service1"`    Service2 map[string]string `json:"service2"`    Service3 map[string]interface{} `json:"service3"`}(我嘗試了幾種不同的方法來實(shí)現(xiàn)這一點(diǎn)。嘗試使用字節(jié)數(shù)組似乎對(duì)響應(yīng)進(jìn)行了 base64 編碼)我想在返回之前將該結(jié)構(gòu)編組為 JSON,所以也許我別無選擇,因?yàn)槲蚁氩怀鲆环N方法來告訴 Go“只編組主結(jié)構(gòu),其他一切都已經(jīng)是 JSON”。在這一點(diǎn)上,我?guī)缀醺杏X最好還是構(gòu)建一個(gè)字符串。
查看完整描述

1 回答

?
aluckdog

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

使用json.RawMessage[]byte包含的 JSON 直接復(fù)制到響應(yīng) JSON 文檔:

type main_response struct {

    Service1 json.RawMessage `json:"service1"`

    ...

}


response := &main_response{

    Service1: body,

}


return c.Status(code).JSON(response)


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

添加回答

舉報(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)