Maison  >  Article  >  développement back-end  >  golang json pour s'opposer

golang json pour s'opposer

WBOY
WBOYoriginal
2023-05-13 10:56:371139parcourir

Dans le langage de programmation Golang, JSON est une structure de données très courante. Golang fournit des API faciles à utiliser pour nous permettre d'effectuer des opérations d'encodage et de décodage JSON. Cet article explique comment convertir JSON en objets Golang. Nous allons illustrer comment cela se fait avec un exemple concret.

Tout d'abord, nous devons utiliser le package encoding/json dans Golang. Ce package fournit des méthodes pour convertir entre les objets Golang et JSON. Les plus importantes d’entre elles sont les méthodes Marshal et Unmarshal. Marshal est utilisé pour coder des objets Golang en chaînes JSON, tandis qu'Unmarshal est utilisé pour décoder des objets Golang à partir de chaînes JSON.

Regardons un exemple précis. Considérez la chaîne JSON suivante, qui représente un objet utilisateur stocké dans JSON.

{
    "id": 123,
    "name": "John Doe",
    "email": "jdoe@example.com",
    "phone": "555-1234",
    "address": {
        "street": "123 Main St",
        "city": "Anytown",
        "state": "CA",
        "zip": "12345"
    }
}

Nous utiliserons Golang pour écrire du code permettant de lire ce JSON et de le convertir en un objet User. Notre objet Utilisateur est défini comme suit :

type User struct {
    ID      int
    Name    string
    Email   string
    Phone   string
    Address Address
}

Address est également un type d'objet, qui est utilisé pour représenter l'adresse résidentielle de l'utilisateur :

type Address struct {
    Street string
    City   string
    State  string
    Zip    string
}

Voyons comment convertir ce qui précède JSON dans notre objet User. Nous pouvons d'abord utiliser la méthode Unmarshal pour lire la chaîne JSON puis la convertir en une structure Golang :

func decodeUser(jsonStr string) (User, error) {
    var user User
    err := json.Unmarshal([]byte(jsonStr), &user)
    if err != nil {
        return User{}, err
    }
    return user, nil
}

Nous pouvons passer la chaîne JSON en paramètre à notre fonction decodeUser via la méthode suivante pour obtenir un Objet utilisateur :

jsonStr := `{
    "id": 123,
    "name": "John Doe",
    "email": "jdoe@example.com",
    "phone": "555-1234",
    "address": {
        "street": "123 Main St",
        "city": "Anytown",
        "state": "CA",
        "zip": "12345"
    }
}`

user, err := decodeUser(jsonStr)
if err != nil {
    fmt.Println("Error decoding JSON: ", err.Error())
}
fmt.Printf("User: %+v", user)

Le code ci-dessus devrait afficher ce qui suit :

User: {ID:123 Name:John Doe Email:jdoe@example.com Phone:555-1234 Address:{Street:123 Main St City:Anytown State:CA Zip:12345}}

Dans Golang, utiliser JSON est très pratique et facile à utiliser. Nous avons seulement besoin de nous familiariser avec certaines API du package json pour implémenter l'encodage et le décodage JSON. Grâce à l'introduction ci-dessus, les lecteurs peuvent comprendre comment Golang traite JSON et comment convertir les chaînes JSON en objets 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!

Déclaration:
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
Article précédent:golang int numéro par défautArticle suivant:golang int numéro par défaut