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

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

如何在不默認為 float64 的情況下解組各種類型的列表

如何在不默認為 float64 的情況下解組各種類型的列表

Go
元芳怎么了 2021-08-30 22:32:25
我有以下 json 數(shù)據(jù)(來自外部程序,稍微簡化了一點)我無法更改 json 格式。[1416495600501595942, {"venue_id": 73, "message_type": "ABC", "sequence": 26686695}]我在 Go 中解壓它時遇到問題,我認為主要是因為它是一個不同類型的列表。顯而易見的事情似乎是 []interface{},它有效,但在將其轉換為 float64 時,會產生一個我無法處理的舍入錯誤(該數(shù)字是自 nanos 紀元以來的時間戳) )。我可以通過將其解壓縮兩次來使其工作,如 []interface{} 和 []int64,但這顯然會影響性能,而且我正在實時處理大量數(shù)據(jù)。我在這里嘗試使用 struct ,因為它會被視為地圖,而不是列表 []有什么方法可以將數(shù)據(jù)的格式傳遞給它,或者使其默認為 int64 而不是 float64?它總是會[int64, map[string]interface{}]即我知道上層列表的格式,并且地圖的鍵是字符串,但值可以是任何東西(痛苦的是,包括小數(shù),我認為我唯一可以用來將它們解釋為浮點數(shù)的東西.. .)package mainimport (    "encoding/json"    "fmt")func main() {    j := `[1416495600501595942, {"venue_id": 73, "message_type": "ABC", "sequence": 26686695}]`    b := []byte(j)    fmt.Println(j)    var line []interface{}    var ints []int64    json.Unmarshal(b, &line)    fmt.Println(line)    // fmt.Println(line[0].(int64))  - this doesn't work    fmt.Println(line[0].(float64))    fmt.Println(int64(line[0].(float64)))    json.Unmarshal(b, &ints)    fmt.Println(ints)}輸出如下:[1416495600501595942,{“venue_id”:73,“message_type”:“oKC”,“sequence”:26686695}][1.416495600501596e+18 地圖[venue_id:73 message_type:oKC 序列:2.6686695e+07]]1.416495600501596e+181416495600501595904[1416495600501595942 0]解決方案(感謝 makpoc/dystroy)package mainimport (    "encoding/json"    "fmt"    "bytes")func main() {    j := `[1416495600501595942, {"venue_id": 7.3, "message_type": "oKC", "sequence": 26686695}]`    b := []byte(j)    fmt.Println(j)    var line []interface{}    d := json.NewDecoder(bytes.NewBuffer(b))    d.UseNumber()        if err := d.Decode(&line); err != nil {        panic(err)    }    fmt.Println(line[0])    data := line[1].(map[string]interface{})    fmt.Println(data["venue_id"])    fmt.Println(data["sequence"])}
查看完整描述

1 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

您可以使用 Decoder -> 和 UseNumber 或結構,而不是直接解析值。


查看完整回答
反對 回復 2021-08-30
  • 1 回答
  • 0 關注
  • 213 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號