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.

Другие вопросы по тегам