Heim >Backend-Entwicklung >Golang >So sortieren Sie JSON-Schlüssel in Go: Pythons „sort_keys'-Funktionalität replizieren?

So sortieren Sie JSON-Schlüssel in Go: Pythons „sort_keys'-Funktionalität replizieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-02 10:13:11807Durchsuche

How to Sort JSON Keys in Go: Replicating Python's `sort_keys` Functionality?

Sortierte JSON-Schlüssel in Go: Pythons Verhalten replizieren

In Python ist die Generierung von JSON mit sortierten Schlüsseln mithilfe des Arguments sort_keys in der Funktion json.dumps() unkompliziert. Die Standardbibliothek von Go scheint jedoch keine gleichwertige Option zu bieten. Wie können wir eine ähnliche Funktionalität in Go erreichen?

Gos Schlüsselreihenfolgeverhalten

Die gute Nachricht ist, dass das Go-Paket „coding/json“ die Schlüsselreihenfolge intern übernimmt. So funktioniert es:

  • Maps: Schlüssel werden lexikografisch (alphabetisch) sortiert.
  • Strukturen: Schlüssel werden in der Reihenfolge geordnet Sie werden innerhalb der Struktur definiert.

Einfach Lösung

Um JSON mit sortierten Schlüsseln in Go zu erstellen, können Sie das integrierte Ordnungsverhalten nutzen.

Betrachten Sie das folgende JSON-Objekt:

{
  "name": "John Smith",
  "age": 30,
  "city": "New York"
}

Sie kann dieses Objekt in Go mithilfe einer Karte erstellen:

import (
    "encoding/json"
)

type Person struct {
    Name  string
    Age   int
    City  string
}

func main() {
    person := Person{
        Name:  "John Smith",
        Age:   30,
        City:  "New York",
    }

    jsonBytes, _ := json.Marshal(person)
    jsonStr := string(jsonBytes)

    // Output sorted JSON
    println(jsonStr)
}

In diesem Beispiel werden die Kartenschlüssel lexikografisch sortiert, was zu einem Ergebnis führt in:

{
  "age": 30,
  "city": "New York",
  "name": "John Smith"
}

Das obige ist der detaillierte Inhalt vonSo sortieren Sie JSON-Schlüssel in Go: Pythons „sort_keys'-Funktionalität replizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn