我正在使用simplejson,它提供了类型断言器。

fmt.Printf("%s %s", m.Get("created_time").MustString(), m.Get("created_time").MustInt64())

上面的代码显示了此结果:
1506259900 %!s(int64=0)

因此MustInt64()给出的是0而不是转换后的Int64值。

是因为1506259900太大而无法转换吗?

谢谢您帮忙!

最佳答案

原始json是:

{"created_time":"1505733738"}


{"created_time":1505733738}

最初是STRING,而不是NUMBER。

因此,当对该json使用MustInt64()时,由于类型不匹配,它应返回0。

正确的方法是使用strconv。
i64, err := strconv.ParseInt(m.Get("created_time").MustString(), 10, 64)

然后您将获得想要的i64。

关于go - golang simplejson mustint64不会从字符串转换为int64,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46400746/

10-10 04:31