Maison >développement back-end >Golang >Utilisez les fonctions fournies par le package encoding/json pour encoder et décoder les chaînes JSON

Utilisez les fonctions fournies par le package encoding/json pour encoder et décoder les chaînes JSON

王林
王林original
2023-07-25 17:41:121010parcourir

Utilisez les fonctions fournies par le package encoding/json pour encoder et décoder les chaînes JSON

JSON (JavaScript Object Notation) est un format d'échange de données couramment utilisé et est largement utilisé pour la transmission et le stockage de données front-end et back-end. Le package encoding/json de la bibliothèque standard du langage Go fournit un ensemble de fonctions qui nous permettent d'encoder et de décoder facilement des chaînes JSON.

En langage Go, vous pouvez utiliser la structure struct pour représenter un objet JSON, puis utiliser les fonctions Marshal et Unmarshal fournies par le package encoding/json pour encoder et décoder.

Tout d’abord, jetons un coup d’œil à l’encodage des chaînes JSON. L'encodage consiste à convertir des objets struct en langage Go en chaînes JSON.

Exemple de code :

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name   string
    Age    int
    Gender string
}

func main() {
    p := Person{
        Name:   "Alice",
        Age:    25,
        Gender: "Female",
    }

    // 使用json.Marshal函数对Person对象进行编码,返回一个字节数组
    jsonBytes, err := json.Marshal(p)
    if err != nil {
        fmt.Println("JSON编码失败:", err)
        return
    }

    // 将字节数组转换为字符串
    jsonString := string(jsonBytes)

    fmt.Println(jsonString)
}

Exécutez le code ci-dessus, le résultat de sortie est :

{"Name":"Alice","Age":25,"Gender":"Female"}

Vous pouvez voir que la chaîne JSON encodée correspond à l'objet Person d'origine un à un et que les champs de chaque objet correspondent au clés de la paire de valeurs de chaîne JSON. La chaîne JSON encodée conservera son ordre d'origine.

Ensuite, jetons un œil au décodage des chaînes JSON. Le décodage consiste à convertir une chaîne JSON en un objet struct en langage Go.

Exemple de code :

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name   string
    Age    int
    Gender string
}

func main() {
    jsonString := `{"Name":"Alice","Age":25,"Gender":"Female"}`

    // 将JSON字符串转换为字节数组
    jsonBytes := []byte(jsonString)

    // 使用json.Unmarshal函数对JSON字符串进行解码
    var p Person
    err := json.Unmarshal(jsonBytes, &p)
    if err != nil {
        fmt.Println("JSON解码失败:", err)
        return
    }

    fmt.Println(p)
}

Exécutez le code ci-dessus, le résultat de sortie est :

{Alice 25 Female}

Vous pouvez voir que l'objet Person décodé correspond à la chaîne JSON d'origine un à un, et chaque paire clé-valeur correspond au champ de l’objet. Les champs décodés conservent leurs types de données d'origine.

Il convient de noter que lorsque vous utilisez le package encoding/json pour l'encodage et le décodage, vous devez vous assurer que les noms de champs dans l'objet struct du langage Go sont cohérents avec les noms de clés dans la chaîne JSON afin d'effectuer la conversion. correctement.

Ce qui précède est un exemple de code pour encoder et décoder les chaînes JSON à l'aide du package encoding/json. Grâce à ces fonctions, nous pouvons facilement traiter les données JSON en 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