Tri des clés JSON dans Go
Le package Python json fournit une option sort_keys pour produire du JSON avec des clés dans un ordre trié. Cet article explique comment obtenir des fonctionnalités similaires dans le package encoding/json de Go.
Solution
Dans Go, le package json trie automatiquement les clés de :
Détails d'implémentation
L'implémentation du tri des clés peut être trouvée dans le fichier encode.go dans le fichier encoding/json package :
func (enc *encodeState) encodeMap(v reflect.Value) { m := v.Interface().(map[string]interface{}) if enc.indent { enc.write(`{` + enc.indentPrefix) } else { enc.write(`{`) } enc.mapStarted = true keys := make([]string, 0, len(m)) for k := range m { keys = append(keys, k) } sort.Strings(keys) for i, k := range keys { enc.encodeValue(reflect.ValueOf(k)) enc.write(`:`) enc.encodeValue(reflect.ValueOf(m[k])) if i < len(m)-1 { enc.write(`,`) } } enc.write(`}`) enc.mapStarted = false }
Cette implémentation garantit que les clés de carte sont triées lexicographiquement et que les clés de structure sont triées en fonction de leur ordre dans la définition de la structure.
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!