Maison > développement back-end > Golang > Comment puis-je analyser efficacement des structures JSON complexes à l'aide de « json.Unmarshal » de Go ?

Comment puis-je analyser efficacement des structures JSON complexes à l'aide de « json.Unmarshal » de Go ?

Patricia Arquette
Libérer: 2024-12-18 07:11:11
original
140 Les gens l'ont consulté

How Can I Effectively Parse Complex JSON Structures Using Go's `json.Unmarshal`?

Analyse JSON complexe avec Go Unmarshal

Dans Go, le package encoding/json fournit la fonction json.Unmarshal pour analyser les données JSON. Ces données peuvent être désorganisées dans une structure prédéfinie ou un type interface{} pour itérer des structures de données inattendues. Cependant, analyser un JSON complexe peut s'avérer difficile.

Par exemple, considérons le JSON suivant :

{
  "k1": "v1",
  "k2": "v2",
  "k3": 10,
  "result": [
    [
      ["v4", "v5", {"k11": "v11", "k22": "v22"}],
      ...
      ["v4", "v5", {"k33": "v33", "k44": "v44"}]
    ],
    "v3"
  ]
}
Copier après la connexion

Pour analyser ce JSON à l'aide de json.Unmarshal, nous pouvons créer une variable d'interface{} et stockez-y le résultat analysé :

type MyData struct {
  v1 string
  v2 string
  v3 int
  result [][]MySubData
  result2 string
}

type MySubData struct {
  v1 string
  v2 string
  result map[string]string
}

var f interface{}
err := json.Unmarshal(b, &f)
Copier après la connexion

Après le démarshalage, la variable f sera une carte avec des clés de chaîne et une interface vide valeurs. Pour accéder à ces données, nous utilisons une assertion de type pour convertir f en une map[string]interface{} et la parcourir :

m := f.(map[string]interface{})
for k, v := range m {
  switch vv := v.(type) {
    case string:
      // Handle string values
    case int:
      // Handle integer values
    case []interface{}:
      // Handle array values
    default:
      // Handle unknown types
  }
}
Copier après la connexion

Cette approche nous permet de travailler avec des structures de données JSON inattendues tout en conservant le type sécurité. Pour plus de détails, reportez-vous à l'article original sur JSON et Go.

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