當服務端對http的body進行解析到map[string]inte***ce{}時,會出現cli傳遞的是int型別,而服務端只能斷言成float64,而不能將接收到的本該是int型別的直接斷言為int
nil//設定請求頭
)//注意,這裡斷言成int型別會出錯
}列印型別,發現product_id是float64型別
原因:json中的數字型別沒有對應int,解析出來都是float64
方案二:
type s struct
s := s
jsondata,
_:= json.
marshal
(s)var m map
[string
]inte***ce
json.
unmarshal
(jsondata,
&m) fmt.
println
(reflect.
typeof
(m["product_id"])
) fmt.
println
(reflect.
typeof
(m["f"])
) decoder := jsoniter.
newdecoder
(bytes.
newreader
(jsondata)
) decoder.
usenumber()
decoder.
decode
(&m)
fmt.
println
(reflect.
typeof
(m["product_id"].
(json.number)
.int64)
) fl,
_:= m[
"f"]
.(json.number)
.float64()
fmt.
println
(reflect.
typeof
(fl)
)
解決golang讀取http的body時遇到的坑
當服務端對http的body進行解析到map string inte ce 時,會出現cli傳遞的是int型別,而服務端只能斷言成float64,而不能將接收到的本該是int型別的直接斷言為int 設定請求頭 注意,這裡斷言成int型別會出錯 c.request.body ioutil.nopclo...
golang讀取檔案
提前建乙個檔案文字helloworld.txt,現在可以在go程式中使用絕對檔案路徑將helloworld整個檔案讀取。中使用到 ioutol包中的 readfile函式。在go語言標準庫文件中它的用法是 func readfile filename string byte,error 說明 rea...
golang 讀取檔案
使用go語言讀取檔案的各種方式整理。整個檔案讀到記憶體,適用於檔案較小的情況 func readallintomemory filename string content byte,err error defer fp.close fileinfo,err fp.stat if err nil bu...