Unmarshal Json-Daten in einer bestimmten Struktur in Go
Ich möchte die folgenden JSON-Daten in Golang dekomprimieren:
b := []byte(`{"Asks": [[21, 1], [22, 1]] ,"Bids": [[20, 1], [19, 1]]}`)
Ich weiß wie das geht, ich definiere eine Struktur wie diese:
type Message struct {
Asks [][]float64 `json:"Bids"`
Bids [][]float64 `json:"Asks"`
}
Was ich nicht weiß, ist, ob es einen einfachen Weg gibt, dies ein bisschen mehr zu spezialisieren. Ich möchte die Daten nach dem Unmarshaling in einem Format wie diesem haben:
type Message struct {
Asks []Order `json:"Bids"`
Bids []Order `json:"Asks"`
}
type Order struct {
Price float64
Volume float64
}
So dass ich es später nach dem Unmarshaling wie folgt verwenden kann:
m := new(Message)
err := json.Unmarshal(b, &m)
fmt.Println(m.Asks[0].Price)
Ich weiß nicht wirklich, wie man das in GO einfach oder idiomatisch macht, also hoffe ich, dass es eine gute Lösung dafür gibt.