Maison  >  Article  >  développement back-end  >  tranche de golang en json

tranche de golang en json

WBOY
WBOYoriginal
2023-05-10 10:05:361137parcourir

Avec le développement continu de Golang, slice est devenu l'un des types de données très importants dans Golang, et sa flexibilité et sa facilité d'utilisation sont louables. Une tranche est un type de référence implémenté à l’aide d’un tableau sous le capot. Les tranches peuvent ajouter et réduire dynamiquement des éléments et sont plus pratiques à utiliser que les tableaux. JSON (JavaScript Object Notation) est un format d'échange de données léger avec une bonne lisibilité et une analyse facile. Dans Golang, les tranches peuvent être converties au format JSON via la bibliothèque standard "encoding/json".

Cet article explorera en détail comment convertir des tranches au format Golang au format JSON.

Comment convertir des tranches en JSON

Dans Golang, la méthode de conversion de tranches en JSON est très simple. Il vous suffit d'utiliser la fonction Marshal dans la bibliothèque standard "encoding/json". La fonction Marshal reçoit un paramètre de type interface{} et renvoie un tableau d'octets et une erreur. Avant la conversion, le type de données dans la tranche doit être défini comme type de structure.

Ce qui suit est un exemple de code simple qui montre comment convertir des tranches au format JSON :

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    persons := []Person{{"Alice", 25}, {"Bob", 31}, {"Charlie", 26}, {"David", 23}}

    jsonBytes, err := json.Marshal(persons)
    if err != nil {
        fmt.Println("转换出错:", err)
    }

    jsonStr := string(jsonBytes)
    fmt.Println(jsonStr)
}

Avec le code ci-dessus, nous pouvons obtenir le résultat suivant :

[{"Name":"Alice","Age":25},{"Name":"Bob","Age":31},{"Name":"Charlie","Age":26},{"Name":"David","Age":23}]

Comme le montre la sortie, les données converties au format JSON , chaque élément est un objet JSON composé d'une structure, et chaque champ de la structure est converti en une paire clé-valeur dans l'objet JSON.

Objet en JSON

En plus du découpage, d'autres types de données dans Golang, tels que les structures, les cartes, etc., peuvent être convertis au format JSON via la fonction Marshal. Nous pouvons changer la tranche dans l'exemple ci-dessus en une structure à afficher :

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    person := Person{
        Name: "Alice",
        Age:  25,
    }

    jsonBytes, err := json.Marshal(person)
    if err != nil {
        fmt.Println("转换出错:", err)
    }

    jsonStr := string(jsonBytes)
    fmt.Println(jsonStr)
}

Grâce au code ci-dessus, nous pouvons obtenir le résultat de sortie suivant :

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

Comme le montre le résultat de sortie, les données converties au format JSON sont également composé d'un objet JSON composé d'une structure, et chaque champ de la structure est converti en une paire clé-valeur dans l'objet JSON.

Échappement de caractères spéciaux

Dans les objets JSON, certains caractères nécessitent un échappement spécial, comme les guillemets doubles ("), les barres obliques (/), les nouvelles lignes (
), etc. Si ces caractères sont présents dans la chaîne d'origine, des caractères spéciaux doivent à échapper avant la conversion au format JSON.

Dans Golang, la fonction Escape est fournie dans la bibliothèque standard "encoding/json" pour échapper aux caractères spéciaux. Voici un exemple de code qui montre comment échapper les caractères spéciaux :

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    str := ""Hello, Golang!" / 
"

    jsonBytes, err := json.Marshal(str)
    if err != nil {
        fmt.Println("转换出错:", err)
    }

    jsonStr := string(jsonBytes)
    fmt.Println(jsonStr)

    jsonStr = json.EscapeString(str)
    fmt.Println(jsonStr)
}

. Grâce au code ci-dessus, nous pouvons obtenir le résultat suivant :

""Hello, Golang!" / 
"
""Hello, Golang!" / \n"

Comme le montre le résultat, dans la chaîne d'origine, les guillemets doubles et les barres obliques sont échappés lors de l'utilisation. Après l'échappement par la fonction EscapeString, les caractères slash et newline sont échappés ; également échappé.

Conclusion

Cet article présente la méthode de conversion des tranches au format JSON dans Golang, ainsi que les méthodes de conversion d'autres types de données (tels que les structures et les cartes). j'espère que cet article pourra vous aider avec la conversion du format JSON dans 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