2017-09-25 3 views
0

저는 simplejson을 사용하고 있으며 형식 어설터를 제공합니다. 코드 위golang simplejson mustint64가 문자열에서 int64로 변환되지 않습니다

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

이 결과를 보여준다

1506259900 %!s(int64=0) 

그래서 MustInt64()을 변환 Int64 값 대신에 0을 준다.

1506259900이 너무 커서 변환 할 수 없습니까?

도움 주셔서 감사합니다.

+1

'simplejson'은 json 문자열 값을'MustInt64'로'int64'로 변환하지 않습니다. 구문 분석하려고하는 json을 제공 할 수 있습니까? – mkopriva

+0

네, 그 이유를 발견했습니다. 당신 말이 맞습니다. – kispi

답변

0

원래 JSON했다 :

{"created_time":"1505733738"} 

없음

{"created_time":1505733738} 

그것은 원래 STRING이 아닌 숫자입니다.

따라서 해당 json MustInt64() 사용할 때 형식이 일치하지 않으므로 0을 반환해야합니다.

이 문제를 해결하는 올바른 방법은 strconv를 사용하는 것입니다.

i64, err := strconv.ParseInt(m.Get("created_time").MustString(), 10, 64) 

그리고 i64로 원하는 것을 얻을 수 있습니다.