Ich verarbeite Ereignisse von einer JSON API in Go, aber leider jeder zurückgegebene Wert wird als Zeichenfolge eingekapselt.Wie analysiere ich JSON-Werte im richtigen Typ in Go?
Die JSON Ereignisse Form kommen, dass API etwas wie folgt aussehen:
[
{
"id": "283702",
"price": "59.99",
"time": "1508813904",
"type": "some_update"
},
{
"id": "283701",
"price": "17.50",
"time": "1508813858",
"type": "some_update"
}
]
nun wie im folgenden Beispiel sieht mein Code diese Evens zu analysieren:
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()
Nun ist dieser Code ein bisschen repetitiv, aber im Grunde analysiere ich die id
, price
und time
und dann konvertiere ich den Zeitstempel in einen Zeitwert.
Nun meine Frage, kann ich die Werte gleichzeitig mit der Analyse der JSON-Antwort konvertieren? Oder gibt es keine Möglichkeit, die Typumwandlung später durchzuführen, wie in diesem Beispiel gezeigt?
„Meine Frage ist jetzt, kann ich die Werte in der gleichen Zeit konvertieren, wie die JSON-Antwort-Parsing.“ Ja. Bitte schauen Sie sich die Paketdokumentation, das Internet oder einfach _try_ mit 'int' an. – Volker