golang simplejson mustint64 не конвертируется из строки в int64
Я использую simplejson, и он предоставляет asserters типа.
fmt.Printf("%s %s", m.Get("created_time").MustString(), m.Get("created_time").MustInt64())
код выше показывает этот результат:
1506259900 %!s(int64=0)
Таким образом, MustInt64() дает 0 вместо преобразованного значения Int64.
Это потому, что 1506259900 слишком велик для конвертации?
Спасибо за помощь!
1 ответ
Оригинальный JSON был:
{"created_time":"1505733738"}
Не
{"created_time":1505733738}
Изначально это STRING, а не NUMBER.
Таким образом, при использовании MustInt64() для этого json он должен возвращать 0, потому что тип не соответствует.
Правильный способ лечения это использование strconv.
i64, err := strconv.ParseInt(m.Get("created_time").MustString(), 10, 64)
И вы получите то, что хотели, как i64.