Mon serveur websocket recevra et décompressera des données JSON. Ces données seront toujours enveloppées dans un objet avec des paires clé/valeur. La chaîne de clés servira d'identifiant de la valeur, indiquant au serveur Go de quel type de valeur il s'agit. En sachant de quel type de valeur il s'agit, je peux alors procéder à l'unmarshal JSON de la valeur dans le bon type de structure.
Chaque objet json peut contenir plusieurs paires clé/valeur.
Exemple JSON :
{
"sendMsg":{"user":"ANisus","msg":"Trying to send a message"},
"say":"Hello"
}
Existe-t-il un moyen simple d'utiliser la fonction "encoding/json"
pour ce faire ?
package main
import (
"encoding/json"
"fmt"
)
// the struct for the value of a "sendMsg"-command
type sendMsg struct {
user string
msg string
}
// The type for the value of a "say"-command
type say string
func main(){
data := []byte(`{"sendMsg":{"user":"ANisus","msg":"Trying to send a message"},"say":"Hello"}`)
// This won't work because json.MapObject([]byte) doesn't exist
objmap, err := json.MapObject(data)
// This is what I wish the objmap to contain
//var objmap = map[string][]byte {
// "sendMsg": []byte(`{"user":"ANisus","msg":"Trying to send a message"}`),
// "say": []byte(`"hello"`),
//}
fmt.Printf("%v", objmap)
}
Merci pour toute suggestion ou aide !