Comment puis-je analyser une chaîne JSON avec des paires clé/valeur connues et inconnues dans une structure Go ? Les champs inconnus peuvent avoir n'importe quel nom et type de valeur (string, bool, float64 ou int).
Créez une structure avec les champs connus et une tranche de cartes pour les champs inconnus :
<code class="go">type Message struct { Known1 string `json:"known1"` Known2 string `json:"known2"` Unknowns []map[string]interface{} }</code>
Désorganisez la chaîne JSON dans cette structure :
<code class="go">json.Unmarshal([]byte(jsonMsg), &msg)</code>
Le champ Inconnus contiendra une liste de cartes représentant les paires clé/valeur inconnues.
Double Unmarshal :
Démarshal et conversion de type :
Les trois solutions sont valables, mais la plus simple et la plus élégante est l'approche initiale basée sur la structure. Cela évite le besoin de démaréchaux supplémentaires ou de conversions de type manuelles.
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!