2017-09-25 17 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'は' mustInt64'を使ってjson文字列の値を 'int64'に変換するとは思っていません。解析しようとしているjsonを提供できますか? – mkopriva

+0

はい、私は理由を見つけた、あなたは間違いなく正しいです。 – kispi

答えて

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として必要なものを手に入れることができます。

関連する問題