json.Unmarshal contre json.NewDecoder.Decode : quelle est la différence en Go ?
Bonjour à tous ! Je suis débutant en Go et j'essaie de comprendre le parsing JSON. Je vois qu'il y a deux façons dans la bibliothèque standard : `json.Unmarshal` et `json.NewDecoder().Decode()`. Les deux semblent faire la même chose — transformer du JSON en structure de données Go. Mais je ne comprends pas quand utiliser l'un ou l'autre.
Par exemple, j'ai ce code :
```go
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
// Méthode 1
data := `{"name":"Alice","age":30}`
var user1 User
err := json.Unmarshal([]byte(data), &user1)
// Méthode 2
reader := strings.NewReader(data)
var user2 User
err = json.NewDecoder(reader).Decode(&user2)
```
Les deux options fonctionnent de la même manière. Mais j'ai entendu dire que `Decoder` est meilleur pour les flux, tandis que `Unmarshal` est pour les petites données. Quelle est la vraie différence ? Y a-t-il une différence de performance ? Quand faut-il choisir une méthode plutôt que l'autre ? Et que se passe-t-il si le JSON est très volumineux (par exemple, 100 Mo) ? Aidez-moi à comprendre, car la documentation n'est pas claire.