Maison > développement back-end > Golang > Comment gérer les clés JSON arbitraires dans Go Structs ?

Comment gérer les clés JSON arbitraires dans Go Structs ?

DDD
Libérer: 2024-11-26 16:04:10
original
1002 Les gens l'ont consulté

How to Handle Arbitrary JSON Keys in Go Structs?

Gestion des clés JSON arbitraires dans les structures Go

Votre réponse JSON contient différentes clés qui ne peuvent pas être définies de manière statique dans une structure Go. Pour résoudre ce problème, envisagez d'utiliser une structure de données cartographiques qui permet des paires clé-valeur dynamiques.

Utilisation d'une carte pour les clés dynamiques

Le code suivant définit une structure qui utilise une carte pour représenter les paires clé-valeur arbitraires :

type Items map[string][]ImageUrl
Copier après la connexion

Ici, Items est une carte qui mappe les chaînes (les clés dans le JSON) aux tranches de structures ImageUrl. Chaque structure ImageUrl représente une URL d'image unique avec ses dimensions.

Exemple d'utilisation

Cette version modifiée de votre code illustre comment utiliser la structure Items :

type ImageUrl struct {
    Url string
    Width, Height int
}

type Items map[string][]ImageUrl

func main() {
    json := `{"items":
[{"name": "thing",
  "image_urls": {
    "50x100": [{
      "url": "http://site.com/images/1/50x100.jpg",
      "width": 50,
      "height": 100
    }, {
      "url": "http://site.com/images/2/50x100.jpg",
      "width": 50,
      "height": 100
    }],
    "200x300": [{
      "url": "http://site.com/images/1/200x300.jpg",
      "width": 200,
      "height": 300
    }],
    "400x520": [{
      "url": "http://site.com/images/1/400x520.jpg",
      "width": 400,
      "height": 520
    }]
  }
}
}`

    var items Items
    if err := json.Unmarshal([]byte(json), &items); err != nil {
        // Handle error
    }

    fmt.Println(items) // Prints the map containing the keys and values
}
Copier après la connexion

Dans cet exemple, la fonction json.Unmarshal remplira automatiquement la carte Items avec les paires clé-valeur appropriées. Vous pouvez ensuite accéder aux données et les manipuler selon vos besoins.

Remarque : Cette approche suppose que les clés imbriquées dans votre JSON sont cohérentes. Si ce n'est pas le cas, vous devrez peut-être utiliser des structures de données plus complexes, telles que des cartes imbriquées ou des tranches de cartes.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal