Unmarshal données Json dans une structure en Aller
Je veux unmarshal la suite des données JSON dans Golang:
b := []byte(`{"Asks": [[21, 1], [22, 1]] ,"Bids": [[20, 1], [19, 1]]}`)
Je ne sais comment faire, je définir une structure comme ceci:
type Message struct {
Asks [][]float64 `json:"Bids"`
Bids [][]float64 `json:"Asks"`
}
Ce que je ne sais pas si il existe un moyen simple de se spécialiser
c'est un peu plus.
Je voudrais avoir les données après la désordonnancement dans un format comme ceci:
type Message struct {
Asks []Order `json:"Bids"`
Bids []Order `json:"Asks"`
}
type Order struct {
Price float64
Volume float64
}
Afin que je puisse l'utiliser plus tard, après désordonnancement comme ceci:
m := new(Message)
err := json.Unmarshal(b, &m)
fmt.Println(m.Asks[0].Price)
Je ne sais pas vraiment comment facile ou idiomatique faire en ALLER
j'espère donc qu'il y a une bonne solution pour cela.
peut-être liés: stackoverflow.com/questions/21268000/...
OriginalL'auteur ungchy | 2014-10-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire cela avec par la mise en œuvre de la
json.Unmarshaler
de l'interface sur votreOrder
struct. Quelque chose comme ceci devrait faire:Cela dit en substance que le
Order
type doit être décodé à partir d'un 2 élément de tableau de chars plutôt que la représentation par défaut pour un struct (un objet).Vous pouvez jouer avec cet exemple, ici: http://play.golang.org/p/B35Of8H1e6
OriginalL'auteur James Henstridge