色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

go json解析int 為0

阮建安1年前10瀏覽0評論

在使用Go語言進行Json解析時,經常會遇到將int解析成0的情況。這是因為Json中的int類型默認為64位有符號整數,而Go語言的int則有可能是32位或64位的類型。

如果Json中的int值過大超過了Go語言中int類型的取值范圍,解析時會將int解析成0。

type MyData struct {
MyInt int
}
func main() {
var data MyData
jsonData := []byte(`{"MyInt":9223372036854775808}`)
err := json.Unmarshal(jsonData, &data)
if err != nil {
panic(err)
}
fmt.Println(data)
}

在上面的代碼中,Json中的int值9223372036854775808超出了Go語言中int類型的最大值,解析后MyData中的MyInt就會被解析成0。

解決此問題的方法是將Json中的int類型解析成int64類型,保證與Go語言中的int類型一致,代碼如下:

type MyData struct {
MyInt int64
}
func main() {
var data MyData
jsonData := []byte(`{"MyInt":9223372036854775808}`)
err := json.Unmarshal(jsonData, &data)
if err != nil {
panic(err)
}
fmt.Println(data)
}

通過將MyInt類型定義為int64,可以正確將Json中的int類型解析成Go語言中的int64類型,解決int為0的問題。