我使用的是simplejson,它提供了类型断言器。
fmt.Printf("%s %s", m.Get("created_time").MustString(), m.Get("created_time").MustInt64())
上面的代码显示了这个结果:
1506259900 %!s(int64=0)
所以MustInt64()给出0而不是转换的Int64值。
是不是因为1506259900太大而无法转换?
感谢您的帮助!
答案 0 :(得分:0)
原来的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。