Maison > développement back-end > Golang > Comment imbriquer Golang JSON

Comment imbriquer Golang JSON

WBOY
Libérer: 2023-05-10 10:34:08
original
1091 Les gens l'ont consulté

Dans Golang, lors de l'utilisation d'objets JSON, plusieurs objets JSON doivent parfois être imbriqués. Cet article présentera brièvement comment implémenter l'imbrication d'objets JSON dans Golang.

JSON (JavaScript Object Notation) est un format d'échange de données léger couramment utilisé pour la transmission de données front-end et back-end. Dans Golang, JSON peut être codé et décodé à l'aide du package "encoding/json" intégré à la bibliothèque standard.

Ce qui suit est un exemple de données JSON simple, représentant les informations d'un livre :

{
    "title": "The Hitchhiker's Guide to the Galaxy",
    "author": "Douglas Adams",
    "price": 5.99,
    "publisher": {
        "name": "Pan Books",
        "address": "London"
    }
}
Copier après la connexion

Dans l'exemple ci-dessus, l'objet "éditeur" est intégré dans l'ensemble d'objets "livre" traitement. Pour implémenter l'imbrication d'objets JSON dans Golang, vous devez définir une structure puis utiliser les méthodes fournies dans la bibliothèque standard pour encoder ou décoder les données JSON.

Par exemple, vous pouvez définir une structure nommée "Livre" pour représenter les informations du livre :

type Book struct {
    Title     string  `json:"title"`
    Author    string  `json:"author"`
    Price     float64 `json:"price"`
    Publisher struct {
        Name    string `json:"name"`
        Address string `json:"address"`
    } `json:"publisher"`
}
Copier après la connexion

Dans le code ci-dessus, la structure imbriquée "Éditeur" est utilisée pour indiquer le informations de publication du livre. Vous devez ajouter une balise "json" à chaque champ de la structure, afin que lors de l'encodage et du décodage des données JSON, le nom du champ puisse correspondre correctement au nom de la clé JSON.

Utilisez les méthodes Marshal et Unmarshal fournies par le package "encoding/json" pour convertir respectivement les structures Golang en données JSON et les données JSON en structures Golang. Par exemple, vous pouvez utiliser le code suivant pour convertir la structure « Livre » en données JSON :

book := Book{
    Title:  "The Hitchhiker's Guide to the Galaxy",
    Author: "Douglas Adams",
    Price:  5.99,
    Publisher: struct {
        Name    string `json:"name"`
        Address string `json:"address"`
    }{
        Name:    "Pan Books",
        Address: "London",
    },
}

jsonBytes, err := json.Marshal(book)
if err != nil {
    fmt.Println(err)
}

fmt.Println(string(jsonBytes))
Copier après la connexion

Le résultat de sortie du code ci-dessus est :

{
    "title":"The Hitchhiker's Guide to the Galaxy",
    "author":"Douglas Adams",
    "price":5.99,
    "publisher":{
        "name":"Pan Books",
        "address":"London"
    }
}
Copier après la connexion

À son tour, vous pouvez utiliser le code suivant pour convertir les données JSON dans la structure "Livre" :

jsonStr := `{
    "title": "The Hitchhiker's Guide to the Galaxy",
    "author": "Douglas Adams",
    "price": 5.99,
    "publisher": {
        "name": "Pan Books",
        "address": "London"
    }
}`

var book Book
if err := json.Unmarshal([]byte(jsonStr), &book); err != nil {
    fmt.Println(err)
}

fmt.Printf("%+v
", book)
Copier après la connexion

Le résultat de sortie du code ci-dessus est :

{Title:The Hitchhiker's Guide to the Galaxy Author:Douglas Adams Price:5.99 Publisher:{Name:Pan Books Address:London}}
Copier après la connexion

Résumé : #🎜🎜 #

Dans Golang, vous pouvez utiliser des structures pour implémenter le traitement imbriqué d'objets JSON. Vous devez utiliser la balise "json" dans la structure pour spécifier la correspondance entre les noms de champs et les noms de clés JSON. Utilisez les méthodes Marshal et Unmarshal fournies dans la bibliothèque standard pour convertir respectivement les structures Golang en données JSON et les données JSON en structures Golang.

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