Maison >développement back-end >Golang >Le package « encoding/json » de Go peut-il partiellement intégrer JSON dans une carte ?
Désorganisation partielle de JSON dans une carte dans Go
Problème :
Envisagez un scénario dans lequel un serveur Go reçoit des données JSON encapsulées dans un objet avec des paires clé/valeur. Chaque clé correspond à un type de valeur spécifique et le serveur doit désorganiser la valeur dans le type de structure approprié en fonction de la clé. La question est : cela peut-il être réalisé en utilisant le package "encoding/json" ?
Solution :
Pour y parvenir, nous pouvons partiellement désorganiser les données JSON dans un carte de paires clé-valeur, où les clés sont des chaînes et les valeurs sont des instances json.RawMessage. RawMessage représente des données JSON non traitées, ce qui nous permet de les décomposer davantage en structures ou types spécifiques.
Voici le code à démontrer :
import ( "encoding/json" "fmt" ) func main() { data := []byte(`{"sendMsg":{"user":"ANisus","msg":"Trying to send a message"},"say":"Hello"}`) var objmap map[string]json.RawMessage err := json.Unmarshal(data, &objmap) if err != nil { // Handle error } // Example: Unmarshal sendMsg value into a struct type sendMsg struct { User string Msg string } var s sendMsg err = json.Unmarshal(objmap["sendMsg"], &s) if err != nil { // Handle error } fmt.Println(s) }
Exemple d'utilisation :
Dans l'exemple ci-dessus, les données JSON sont d'abord désorganisées dans un map[string]json.RawMessage. Ensuite, pour analyser des valeurs spécifiques telles que sendMsg, nous pouvons décomposer davantage le RawMessage correspondant dans une structure définie dans le programme.
Cette technique permet une gestion flexible et efficace des données JSON avec plusieurs paires clé-valeur, où le les valeurs peuvent être décomposées en différents types en fonction de la clé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!