Maison  >  Article  >  développement back-end  >  Comment transférer des données JSON dans Golang

Comment transférer des données JSON dans Golang

PHPz
PHPzoriginal
2023-04-05 10:29:48665parcourir

Golang est un langage de programmation très populaire qui vise à simplifier la vie des développeurs. La manipulation des données JSON est une tâche courante dans ce langage. JSON (JavaScript Object Notation) est un format d'échange de données léger utilisé pour transférer des données entre interfaces. Comment transférer des données JSON dans Golang ? Voici quelques conseils.

La première méthode consiste à utiliser le package encoding/json intégré de Golang. Ce package nous permet de convertir JSON en types Go correspondants et les types Go en JSON. Par exemple, voici l'exemple de code pour convertir JSON en structure :

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

func main() {
    jsonString := `{"name":"Jack","age":30,"gender":"male"}`
    var p Person
    err := json.Unmarshal([]byte(jsonString), &p)
    if err != nil {
        fmt.Println("解析 JSON 出错:", err)
        return
    }
    fmt.Println(p)  // 输出:{Jack 30 male}
}

Dans le code ci-dessus, nous définissons une structure Person et utilisons json.Unmarshal pour analyser la chaîne JSON dans la structure. Il est important de noter que chaque champ de la structure doit être annoté avec une balise json:"" afin que l'encodeur et le décodeur connaissent le nom du champ à convertir.

La deuxième méthode consiste à utiliser le package tiers jsoniter. Ce package est capable de traiter les données JSON plus rapidement que le package json standard. Voici l'exemple de code pour convertir des données JSON à l'aide de jsoniter :

import "github.com/json-iterator/go"

func main() {
    jsonString := `{"name":"Jack","age":30,"gender":"male"}`
    var p map[string]interface{}
    jsoniter.Unmarshal([]byte(jsonString), &p)
    fmt.Println(p)  // 输出:map[age:30 gender:male name:Jack]
}

Dans le code ci-dessus, nous utilisons jsoniter.Unmarshal pour analyser la chaîne JSON en un objet map[string]interface{} et imprimer l'objet. Il convient de noter que cette méthode d'analyse détruira les informations de type des données JSON, une conversion de type ultérieure peut donc être nécessaire.

La troisième méthode consiste à utiliser le package tiers go-simplejson. Ce package facilite la manipulation des données JSON et prend en charge la syntaxe de chaînage. Voici un exemple de code utilisant go-simplejson :

import "github.com/bitly/go-simplejson"

func main() {
    jsonString := `{"name":"Jack","age":30,"gender":"male"}`
    js, err := simplejson.NewJson([]byte(jsonString))
    if err != nil {
        fmt.Println("解析 JSON 出错:", err)
        return
    }
    name := js.Get("name").MustString()
    age := js.Get("age").MustInt()
    gender := js.Get("gender").MustString()
    p := Person{name, age, gender}
    fmt.Println(p)  // 输出:{Jack 30 male}
}

Dans le code ci-dessus, nous utilisons simplejson.NewJson pour convertir une chaîne JSON en un simple objet JSON. Nous pouvons ensuite utiliser la méthode Get pour obtenir la valeur de l'objet, et les méthodes MustString et MustInt pour obtenir la chaîne et les valeurs entières correspondantes.

Pour résumer, il existe de nombreuses méthodes parmi lesquelles choisir pour convertir des données JSON dans Golang. La plus couramment utilisée est la bibliothèque standard encoding/json. Si vous avez besoin d'une vitesse plus rapide, vous pouvez utiliser jsoniter. De plus, go-simplejson est également une bibliothèque JSON très utile, qui fournit une syntaxe de chaîne et une utilisation simple. Quoi qu'il en soit, vous pouvez facilement manipuler les données JSON.

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