Le JSON est une structure de données devenu incontournable dans le milieu du web et même au delà. Il est possible de l’utiliser avec Go grâce au paquetage encoding/json.

Dans ce tutoriel nous allons voir comment encoder une struct en JSON.

Encodage d’une simple struct avec la méthode Marshal :

package main

import (
    "encoding/json"
    "fmt"
)

type Page struct {
    Id    string
    Title string
}

func main() {
    b, err := json.Marshal(Page{"123xyz", "abcd"})

    if err != nil {
        fmt.Println("Error:", err)
    }

    fmt.Println(string(b))

    // Sortie {"Id":"123xyz","Title":"abcd"}
}

Voir dans le Playground

Si vous souhaitez avoir une sortie avec des clefs qui commencent par des minuscules ou des noms différent, il suffit simplement d’ajouter des tags à vos propriétés :

type Page struct {
    Id    string `json:"_id"`
    Title string `json:"title"`
}

// Sortie {"_id":"123xyz","title":"abcd"}

Voir dans le Playground

De même si vous ne souhaitez pas qu’un champ apparaisse dans la sortie, il suffit de remplacer la valeur d’un tag par un tiret « – » :

type Page struct {
    Id    string `json:"-"`
    Title string `json:"title"`
}

// Sortie {"title":"abcd"}

Voir dans le Playground

Il n'y a pas de commentaires.