Maison > développement back-end > Golang > le corps du texte

Comment convertir des données JSON en structure dans Golang ?

王林
Libérer: 2024-06-05 20:47:00
original
672 Les gens l'ont consulté

Dans Golang, les données JSON peuvent être converties en structure en suivant les étapes suivantes : définissez une structure avec des noms de champs qui correspondent aux noms d'attributs JSON et utilisez la balise json pour spécifier les noms de champs JSON. Utilisez la fonction json.Unmarshal du package encoding/json pour analyser une chaîne JSON et la convertir en pointeur vers une structure. Vérifiez les erreurs d'analyse. Accédez aux champs de structure pour extraire des données.

如何在 Golang 中将 JSON 数据转换为结构体?

Comment convertir des données JSON en structure dans Golang

Introduction

Golang fournit le package encoding/json pour traiter facilement les données JSON. Il vous permet de convertir les données JSON en structures, ce qui facilite l'accès et la manipulation des données JSON. encoding/json 包来方便地处理 JSON 数据。它允许您将 JSON 数据转换为结构体,从而可以轻松地访问和操作 JSON 数据。

实战案例

假设您有一个 JSON 字符串:

{
  "name": "John Doe",
  "age": 30,
  "occupation": "Software Engineer"
}
Copier après la connexion

并希望将其转换为一个结构体。以下是步骤:

  1. 定义结构体:
type Person struct {
  Name       string `json:"name"`
  Age        int    `json:"age"`
  Occupation string `json:"occupation"`
}
Copier après la connexion
  • struct 关键字创建了一个新的结构体类型。
  • 字段名称与 JSON 属性名称匹配。
  • json 标签指定了 JSON 字段名称。
  1. 解析 JSON 数据:
import "encoding/json"

var jsonStr = `{
  "name": "John Doe",
  "age": 30,
  "occupation": "Software Engineer"
}`

var person Person

err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
  // 处理错误
}
Copier après la connexion
  • json.Unmarshal 函数解析 JSON 字符串并将其转换为指向结构体的指针。
  • jsonStr 是 JSON 字符串。
  • person 是目标结构体。
  • 如果有错误,Unmarshal 将返回该错误。
  1. 访问结构体字段:
fmt.Println(person.Name)  // "John Doe"
fmt.Println(person.Age)   // 30
fmt.Println(person.Occupation)  // "Software Engineer"
Copier après la connexion
  • 一旦 JSON 数据被正确解析,您就可以像访问任何其他结构体成员一样访问结构体字段。

注意

  • 确保结构体字段的类型与 JSON 属性中的值类型兼容。
  • JSON 属性名称必须与结构体字段名称相匹配,除非您使用 json 标签。
  • 如果 JSON 数据无法解析,请在 Unmarshal
Cas pratique🎜🎜🎜Supposons que vous ayez une chaîne JSON : 🎜rrreee🎜 et que vous souhaitiez la convertir en structure. Voici les étapes : 🎜
  1. 🎜Définissez la structure : 🎜🎜
rrreee
  • Le mot-clé struct crée un nouveau type de structure. 🎜
  • Les noms de champs correspondent aux noms de propriétés JSON. 🎜
  • La balise json spécifie le nom du champ JSON. 🎜🎜
    1. 🎜Analyser les données JSON : 🎜🎜
    rrreee
    • json.Unmarshal analyse la chaîne JSON et la convertit en pointeur vers une structure. 🎜
    • jsonStr est une chaîne JSON. 🎜
    • person est la structure cible. 🎜
    • S'il y a une erreur, Unmarshal renverra cette erreur. 🎜🎜
      1. 🎜Accès aux champs de structure : 🎜🎜
      rrreee
      • Une fois les données JSON analysées correctement, vous pouvez y accéder comme n'importe quel autre membre de la structure Access champs de structure. 🎜🎜🎜🎜Note🎜🎜
        • Assurez-vous que le type du champ de structure est compatible avec le type de valeur dans l'attribut JSON. 🎜
        • Les noms de propriétés JSON doivent correspondre aux noms de champs de structure, sauf si vous utilisez la balise json. 🎜
        • Si les données JSON ne peuvent pas être analysées, recherchez les erreurs dans Unmarshal. 🎜🎜

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!

Étiquettes associées:
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!