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

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

Golang 返回默認(rèn)的結(jié)構(gòu)數(shù)組

Golang 返回默認(rèn)的結(jié)構(gòu)數(shù)組

Go
紅糖糍粑 2022-11-23 20:14:34
當(dāng)我卷曲一個(gè) api 時(shí),我得到這樣的響應(yīng):[{"Hits":25,"Name":"HIT"},{"Hits":87,"Name":"MISS"},{"Hits":15,"Name":"EXPIRED"}]當(dāng)響應(yīng)返回 0 值時(shí),即 curl 返回:[{"Hits":0,"Name":"HIT"},{"Hits":0,"Name":"MISS"},{"Hits":0,"Name":"EXPIRED"}]在使用 0 值響應(yīng)解組代碼中的 json 后,我實(shí)際得到的是:[{1 NONE}]我實(shí)際上需要具有 0 值的鍵名,因?yàn)槲艺趯⑵鋵懙揭粋€(gè)文件中,最終由另一個(gè)系統(tǒng)使用。為了解決這個(gè)問題,如果返回給我一個(gè),我創(chuàng)建了一個(gè)默認(rèn)數(shù)組[{1 NONE}]例如:type CHData struct {    Hits int    `json:"Hits"`    Name string `json:"Name"`}func apiResponse () apiResponseData,err{    //code that calls the api and returns the response {    ...    json.Unmarshal([]byte(body), &apiResponseData)      ..    }         if len(apiReturneddata) <= 1 { // checks for [{1 NONE}] value                //Default array if api returns with 0 values        array1 := CHData{Hits: 0, Name: "HIT"}        array2 := CHData{Hits: 0, Name: "MISS"}        array3 := CHData{Hits: 0, Name: "EXPIRED"}        //adding each json into the array of json's        var mockData []CHData        mockData = append(mockData, array1)        mockData = append(mockData, array2)        mockData = append(mockData, array3)        log.Println(mockData)        i, _ := json.Marshal(mockData)        //log.Println(string(i))        //Overwrite the "[{1 NONE}]" with [{"Hits":0,"Name":"HIT"},{"Hits":0,"Name":"MISS"},{"Hits":0,"Name":"EXPIRED"}]         json.Unmarshal([]byte(i), &apiResponseData)    }    return apiResponseData}^ 這行得通但是有沒有更好的方法來做到這一點(diǎn)它看起來很冗長,我在這個(gè)數(shù)組中只有 3 個(gè)結(jié)構(gòu)但我可以有更多嗎?為什么它[{1 NONE}]無論如何都會返回而不是 Key:Value 支柱?
查看完整描述

1 回答

?
隔江千里

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

我假設(shè) apiResponseData 是 []CHData


您應(yīng)該檢查響應(yīng)是否為無(1 個(gè)條目、1 個(gè)名為 None 的命中等)


如果是,則使用默認(rèn)響應(yīng)。



type apiResponseData []CHData


var defaultAPIResponseData = apiResponseData{

    {0, "HIT"},

    {0, "MISS"},

    {0, "EXPIRED"},

}


func (r apiResponseData) IsNone() bool {

    return len(r) == 1 && r[0].Name == "None"

}


查看完整回答
反對 回復(fù) 2022-11-23
  • 1 回答
  • 0 關(guān)注
  • 165 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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