Le tri des clés JSON est un problème courant lors du regroupement de cartes ordonnées dans Golang. Lorsque nous obtenons des données d'une base de données ou d'une autre source de données et que nous les marsillons au format JSON, nous devons souvent trier les clés pour garantir que l'objet JSON de sortie a un ordre de clé cohérent. Implémenter cette fonction dans Golang n'est pas compliqué. Nous pouvons utiliser une combinaison de structures et de tranches pour implémenter la fonction de tri des clés. Nous pouvons facilement atteindre l'objectif de trier les clés JSON en stockant les paires clé-valeur dans une tranche d'une structure et en utilisant le package de tri pour trier les tranches. Dans cet article, nous expliquerons comment trier les clés JSON lors du marshaling d'une carte ordonnée dans Golang et fournirons un exemple de code simple pour démontrer le processus.
Je dois parcourir un fragment JSON donné et le tableau contient des éléments individuels pour le convertir en carte. Cela est facile à faire.
Le problème est que je dois renvoyer un morceau de JSON au client dans l'ordre dans lequel il a été rendu.
J'ai trouvé quelques guides sur l'utilisation de OrderedMap mais cela ne me semble pas cohérent.
Parfois, je reçois la bonne commande, parfois non.
https://go.dev/play/p/b9hmS9BEymy
Quelqu'un peut-il me conseiller ? À en juger par la journalisation, le problème peut provenir du démarshaling du JSON entrant
Je suis vraiment réticent à utiliser des structures car le vrai JSON que je dois gérer est très complexe et nécessite beaucoup de travail car il existe de nombreuses variantes.
Le démarshaling du json ne suivra pas la commande car vous utilisez la fonction map[string]interface{}
。 golang 中的 Map 是一个 hashmap,所以这并不奇怪。您应该做的是创建一个 UnmarshalJSON
et effectuez un démarshaling personnalisé, sinon la commande ne pourra pas être conservée.
Vous pouvez utiliser la désorganisation standard pour tous les autres types, à l'exception des cartes, ce qui devrait faciliter les choses. Si vous voulez des détails sur la façon de procéder, je peux aussi vous l'expliquer
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!