Maison >développement back-end >Golang >Comment traiter les données JSON en langage Go ?

Comment traiter les données JSON en langage Go ?

WBOY
WBOYoriginal
2023-06-10 16:41:512040parcourir

Ces dernières années, le format de données JSON (JavaScript Object Notation) est devenu l'un des formats les plus populaires dans le développement Web. Le langage Go offre une excellente prise en charge du traitement des données JSON. Cet article explique comment traiter les données JSON dans le langage Go.

1. Format de données JSON

Avant de comprendre comment traiter les données JSON en langage Go, nous devons d'abord comprendre le format de données JSON. JSON est un format d'échange de données léger basé sur la notation d'objets JavaScript et prend en charge plusieurs langages de programmation. Voici un exemple de données JSON :

{
    "name": "张三",
    "age": 25,
    "hobbies": ["读书", "旅游", "电影"],
    "contact": {
        "telephone": "13512345678",
        "email": "zs@example.com"
    }
}

Dans cet exemple, nous pouvons voir que les données JSON sont entourées d'accolades et que leur contenu comprend quatre paires clé-valeur, à savoir le nom, l'âge, les loisirs et le contact. Parmi eux, la valeur du nom de la clé est une chaîne, la valeur de l'âge de la clé est un nombre, la valeur des loisirs clés est un tableau, le tableau contient trois chaînes et la valeur du contact clé est un JSON imbriqué. data. Les données imbriquées contiennent deux paires clé-valeur, à savoir le téléphone et l'e-mail.

2. Traitement JSON en langage Go

En langage Go, nous pouvons traiter les données JSON via le package encoding/json. Ce package fournit deux fonctions, Marshal et Unmarshal, qui peuvent être utilisées pour convertir les types de données du langage Go au format JSON ou convertir les données au format JSON en types de données du langage Go.

  1. Fonction Marshal

La fonction Marshal est utilisée pour convertir les types de données en langage Go en données au format JSON. La fonction est définie comme suit :

func Marshal(v interface{}) ([]byte, error)

Cette fonction reçoit un paramètre v de type interface, qui représente le type de données du langage Go à convertir. Cette fonction renvoie un tableau d'octets et une valeur d'erreur. Si la conversion réussit, la valeur d'erreur est nulle, sinon le message d'erreur correspondant sera renvoyé.

Voici un exemple d'utilisation de la fonction Marshal pour convertir un type de structure en langage Go en données au format JSON :

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    p := Person{Name: "张三", Age: 25}
    b, err := json.Marshal(p)
    if err != nil {
        fmt.Println("转换失败", err)
        return
    }
    fmt.Println(string(b))
}

Dans cet exemple, nous définissons un type de structure nommé Personne, qui contient deux champs Nom et Les balises Age et json:"name"json:"age" sont utilisées sur les champs de la structure. Ces balises sont utilisées pour spécifier les noms clés des champs correspondants lors de la conversion au format JSON.

Dans la fonction principale, nous créons une instance p du type Person, puis utilisons la fonction json.Marshal pour convertir l'instance en données au format JSON. Une fois la conversion réussie, le résultat est imprimé sur la console.

Le résultat de sortie est le suivant :

{"name":"张三","age":25}

Vous pouvez voir que le type Personne dans le langage Go est converti en données au format JSON.

  1. Fonction Unmarshal

La fonction Unmarshal est utilisée pour convertir des données au format JSON en types de données en langage Go. La définition de cette fonction est la suivante :

func Unmarshal(data []byte, v interface{}) error

Cette fonction reçoit deux paramètres Le premier paramètre data représente les données au format JSON à convertir, qui est un tableau d'octets. Le deuxième paramètre v représente les données du langage Go à convertir. type, qui est un type d’interface.

Ce qui suit est un exemple d'utilisation de la fonction Unmarshal pour convertir des données au format JSON en un type de structure dans le langage Go :

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    s := `{"name":"张三","age":25}`
    var p Person
    err := json.Unmarshal([]byte(s), &p)
    if err != nil {
        fmt.Println("转换失败", err)
        return
    }
    fmt.Println(p)
}

Dans cet exemple, nous définissons d'abord un type de structure nommé Person, puis dans la fonction principale, nous a créé un data s au format JSON, qui est cohérent avec les données de l'exemple précédent, puis a utilisé la fonction json.Unmarshal pour convertir les données au format JSON en type Person dans le langage Go. Une fois la conversion réussie, le résultat est imprimé. à la console.

Le résultat de sortie est le suivant :

{张三 25}

Vous pouvez voir que les données au format JSON sont converties en type Personne dans le langage Go.

En résumé, le langage Go offre un support très pratique pour le traitement des données au format JSON. À l’aide des fonctions Marshal et Unmarshal du package encoding/json, vous pouvez facilement convertir les types de données du langage Go au format JSON ou convertir les données au format JSON en types de données du langage 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!

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