私はGoのJSON APIからイベントを処理していますが、残念ながら返されるすべての値は文字列としてカプセル化されています。 APIには、次のようにやや見えることフォームくる正しいタイプのJSON値をGoで解析するには?
JSONイベント:
[
{
"id": "283702",
"price": "59.99",
"time": "1508813904",
"type": "some_update"
},
{
"id": "283701",
"price": "17.50",
"time": "1508813858",
"type": "some_update"
}
]
は今これら追いついを解析するために私のコードは次の例のようになります
type event []struct {
ID string `json:"id"`
Price string `json:"price"`
Time string `json:"time"`
Type string `json:"type"`
}
// Requesting and parsing events here ...
id, err := strconv.ParseInt(event.ID, 0, 64)
if err != nil {
return err
}
price, err := strconv.ParseFloat(event.Price, 64)
if err != nil {
return err
}
timestamp, err := strconv.ParseInt(event.Time, 0, 64)
if err != nil {
return err
}
datetime := time.Unix(timestamp, 0).UTC()
は今、このコードは少しあります繰り返しますが、基本的に私はid
、price
、time
を解析しています。そして、タイムスタンプを時間値に変換しています。
私の質問は、JSON応答の解析と同時に値を変換できますか?または、これを回避する方法がないので、この例に示すように後で型変換を行う必要がありますか?
「今、私の質問に、私はJSONレスポンスを解析すると同時に値を変換することができます。」はい。パッケージのドキュメントやインターネットを見てみるか、 'int'を使って_try_してください。 – Volker