Maison >développement back-end >Golang >Comment trier les clés JSON dans Go : réplication de la fonctionnalité « sort_keys » de Python ?

Comment trier les clés JSON dans Go : réplication de la fonctionnalité « sort_keys » de Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-02 10:13:11806parcourir

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

Clés JSON triées dans Go : réplication du comportement de Python

En Python, générer du JSON avec des clés triées est simple à l'aide de l'argument sort_keys dans la fonction json.dumps(). Cependant, la bibliothèque standard de Go ne semble pas proposer d'option équivalente. Comment pouvons-nous obtenir des fonctionnalités similaires dans Go ?

Comportement de commande des clés de Go

La bonne nouvelle est que le package Go encoding/json gère la commande des clés en interne. Voici comment cela fonctionne :

  • Maps : Les clés sont triées lexicographiquement (par ordre alphabétique).
  • Structs : Les clés sont classées dans l'ordre ils sont définis dans la structure.

Un simple Solution

Pour produire du JSON avec des clés triées dans Go, vous pouvez profiter du comportement de tri intégré.

Considérez l'objet JSON suivant :

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

Vous peut créer cet objet dans Go à l'aide d'une carte :

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)
}

Dans cet exemple, les clés de la carte sont triées lexicographiquement, ce qui donne dans :

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

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn