Maison > développement back-end > Golang > golang modifier json

golang modifier json

PHPz
Libérer: 2023-05-21 14:31:12
original
703 Les gens l'ont consulté

Le langage Go (Golang) est un langage de programmation similaire au langage C, principalement utilisé pour développer des applications de programmation efficaces et fiables. Par rapport à d'autres langages de programmation, les avantages de Golang incluent des performances élevées, une efficacité de développement élevée, une concurrence élevée et de solides capacités de gestion des erreurs. Dans le développement réel, nous avons souvent besoin d'exploiter des données au format JSON. Cet article explique comment utiliser Golang pour modifier des données au format JSON.

1. Introduction à JSON

JSON signifie JavaScript Object Notation. Il s'agit d'un format d'échange de données léger. Il est basé sur un sous-ensemble du standard de langage JavaScript (ECMA-262 version 3, décembre 1999). En raison de la spécification et de la lisibilité du format JSON, il est largement utilisé dans les applications Web.

2. Utiliser JSON dans Golang

Dans Golang, nous pouvons utiliser le package encoding/json pour traiter le format JSON. Ce package fournit des fonctions telles que Marshal, Unmarshal, NewEncoder et NewDecoder, qui peuvent implémenter des opérations d'analyse et de génération JSON.

  1. Parsing JSON

Parsing JSON utilise généralement la fonction json.Unmarshal(). Supposons que nous ayons la chaîne JSON suivante :

{
    "name": "Tom",
    "age": 18,
    "gender": "male",
    "score": [88, 90, 95]
}
Copier après la connexion
Copier après la connexion

Nous pouvons définir la structure suivante pour représenter les données JSON :

type Student struct {
    Name   string  `json:"name"`
    Age    int     `json:"age"`
    Gender string  `json:"gender"`
    Score  []int   `json:"score"`
}
Copier après la connexion
Copier après la connexion

Utilisez la fonction Unmarshal() pour analyser la chaîne JSON dans la structure Student :

var str = `{
    "name": "Tom",
    "age": 18,
    "gender": "male",
    "score": [88, 90, 95]
}`
var std Student
err := json.Unmarshal([]byte(str), &std)
if err != nil {
    panic(err.Error())
}
fmt.Println(std.Name, std.Age, std.Gender, std.Score)
Copier après la connexion

Sortie après l'exécution :

Tom 18 male [88 90 95]
Copier après la connexion
  1. Générer JSON

La génération de JSON utilise généralement la fonction json.Marshal(). Nous pouvons définir une structure Étudiant :

type Student struct {
    Name   string  `json:"name"`
    Age    int     `json:"age"`
    Gender string  `json:"gender"`
    Score  []int   `json:"score"`
}
Copier après la connexion
Copier après la connexion

Convertir la structure en chaîne JSON :

std := Student{
    Name:   "Tom",
    Age:    18,
    Gender: "male",
    Score:  []int{88, 90, 95},
}
result, err := json.Marshal(std)
if err != nil {
    panic(err.Error())
}
fmt.Println(string(result))
Copier après la connexion

Sortie :

{"name":"Tom","age":18,"gender":"male","score":[88,90,95]}
Copier après la connexion

3. Modifier JSON

Dans Golang, nous pouvons utiliser des moyens simples pour modifier les données au format JSON. Supposons que nous ayons les données JSON suivantes :

{
    "name": "Tom",
    "age": 18,
    "gender": "male",
    "score": [88, 90, 95]
}
Copier après la connexion
Copier après la connexion

Nous pouvons d'abord utiliser la fonction Unmarshal() pour analyser la chaîne JSON au format Map :

var str = `{
    "name": "Tom",
    "age": 18,
    "gender": "male",
    "score": [88, 90, 95]
}`
var data map[string]interface{}
err := json.Unmarshal([]byte(str), &data)
if err != nil {
    panic(err.Error())
}
Copier après la connexion

Ensuite, nous pouvons modifier une valeur dans les données :

data["score"] = []int{99, 98, 97}
Copier après la connexion

Enfin, utilisez Marshal( ) la fonction convertit la Map en chaîne JSON :

result, err := json.Marshal(data)
if err != nil {
    panic(err.Error())
}
fmt.Println(string(result))
Copier après la connexion

Output :

{"age":18,"gender":"male","name":"Tom","score":[99,98,97]}
Copier après la connexion

On peut également utiliser struct pour modifier JSON :

type Student struct {
    Name   string  `json:"name"`
    Age    int     `json:"age"`
    Gender string  `json:"gender"`
    Score  []int   `json:"score"`
}

var str = `{
    "name": "Tom",
    "age": 18,
    "gender": "male",
    "score": [88, 90, 95]
}`
var std Student
err := json.Unmarshal([]byte(str), &std)
if err != nil {
    panic(err.Error())
}

std.Score = []int{99, 98, 97}

result, err := json.Marshal(std)
if err != nil {
    panic(err.Error())
}
fmt.Println(string(result))
Copier après la connexion

Output :

{"name":"Tom","age":18,"gender":"male","score":[99,98,97]}
Copier après la connexion

4. Résumé

Cet article présente principalement le traitement de JSON dans Golang Les méthodes de formatage incluent l'analyse de JSON, la génération de JSON, la modification de JSON, etc. Le format de données JSON est un format d'échange de données léger et facile à lire, et Golang fournit une prise en charge solide via le package encoding/json. Dans le développement réel, nous devons choisir différentes méthodes de fonctionnement selon les besoins pour améliorer l'efficacité et la maintenabilité du programme.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal