Sortieren von JSON-Schlüsseln in Go
Das Python-JSON-Paket bietet eine sort_keys-Option, um JSON mit Schlüsseln in einer sortierten Reihenfolge zu erstellen. In diesem Artikel wird untersucht, wie eine ähnliche Funktionalität im Codierungs-/JSON-Paket von Go erreicht werden kann.
Lösung
In Go sortiert das JSON-Paket automatisch die Schlüssel von:
Implementierungsdetails
Die Implementierung der Schlüsselsortierung finden Sie in der Datei encode.go im Paket „encoding/json“. :
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 }
Diese Implementierung stellt sicher, dass Kartenschlüssel lexikografisch sortiert werden und Strukturschlüssel basierend auf ihrer Reihenfolge darin sortiert werden die Strukturdefinition.
Das obige ist der detaillierte Inhalt vonWie kann ich JSON-Schlüssel beim Codieren von JSON in Go sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!