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

golang modifier json

PHPz
PHPzoriginal
2023-05-21 14:31:12598parcourir

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]
}

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"`
}

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)

Sortie après l'exécution :

Tom 18 male [88 90 95]
  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"`
}

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))

Sortie :

{"name":"Tom","age":18,"gender":"male","score":[88,90,95]}

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]
}

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())
}

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

data["score"] = []int{99, 98, 97}

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))

Output :

{"age":18,"gender":"male","name":"Tom","score":[99,98,97]}

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))

Output :

{"name":"Tom","age":18,"gender":"male","score":[99,98,97]}

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!

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
Article précédent:requêtes simultanées GolangArticle suivant:requêtes simultanées Golang