Maison > développement back-end > Golang > Comment mapper des chaînes à divers types dans des objets Go JSON ?

Comment mapper des chaînes à divers types dans des objets Go JSON ?

Barbara Streisand
Libérer: 2024-12-14 12:05:11
original
719 Les gens l'ont consulté

How to Map Strings to Diverse Types in Go JSON Objects?

Mappage de chaînes vers divers types dans des objets JSON

Dans Go, les cartes nécessitent de spécifier explicitement leurs types de clé et de valeur. Lorsqu'il s'agit d'objets JSON, qui autorisent des paires clé-valeur de types arbitraires, cette restriction pose un obstacle.

Question :

Comment pouvons-nous créer une carte qui puisse être converti en un objet JSON de la forme { "a": "apple", "b": 2 }, où les clés et les valeurs peuvent être de différentes types ?

Réponse :

Go fournit une solution via son type d'interface{}, qui peut contenir des valeurs de n'importe quel type. Selon la documentation du package encoding/json, lors du démarshaling de JSON dans une interface {}, les règles suivantes s'appliquent :

  • Les valeurs booléennes sont stockées sous forme de bool.
  • Les nombres sont stockés sous forme de float64. .
  • Les chaînes sont stockées sous forme de chaîne.
  • Les tableaux sont stockés sous forme de []interface{}.
  • Les objets sont stockés sous forme de map[string]interface{}.
  • Les valeurs nulles sont stockées sous la forme nil.

Pour utiliser cela, nous pouvons simplement créer une map[string]interface{} et la remplir avec des valeurs de différents types :

m := map[string]interface{}{"a":"apple", "b":2}
Copier après la connexion

Cette carte peut désormais être facilement convertie en Objet JSON en le marshallant à l'aide de la fonction json.Marshal().

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal