Maison >développement back-end >Golang >tranche de golang en json
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.
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.
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.
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é.
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!