Aller au contenu principal

Manipuler du Json

En go il est possible de manipuler du Json grâce au package encoding/json.

Encoder du Json​

Pour encoder du Json, il suffit d'utiliser la fonction json.Marshal en lui passant en paramètre un type de données.

package main

import (
"encoding/json"
"fmt"
)

func main() {
// Création d'une variable de type map[string]string
var person map[string]string = map[string]string{
"name": "John",
"age": "25",
}

// Encodage de la variable person en Json
jsonPerson, err := json.Marshal(person)
if err != nil {
fmt.Println(err)
}

// Affichage du Json
fmt.Println(string(jsonPerson)) // Affiche {"age":"25","name":"John"}
}

Décoder du Json​

Pour décoder du Json, il suffit d'utiliser la fonction json.Unmarshal en lui passant en paramètre un tableau de bytes et un pointeur vers un type de données.

package main

import (
"encoding/json"
"fmt"
)

func main() {
// mock de Json
jsonMock := `
{
"name": "John",
"age": "25",
}`

// Création d'une variable de type []byte
var jsonPerson []byte = []byte(jsonMock)

// Création d'une variable de type map[string]string
var person map[string]string

// Décodage du Json dans la variable person
err := json.Unmarshal(jsonPerson, &person)
if err != nil {
fmt.Println(err)
}

// Affichage de la variable person
fmt.Println(person) // Affiche map[age:25 name:John]
}