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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage