json.Unmarshal vs json.NewDecoder.Decode: Was für das Parsen von JSON in Go wählen?
Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, und bin auf das Problem der Wahl zwischen `json.Unmarshal` und `json.NewDecoder.Decode` zum Parsen von JSON gestoßen. Beide Methoden tun dasselbe – sie dekodieren JSON in eine Struktur, aber in der Dokumentation steht, dass es Nuancen gibt.
Hier ist ein Beispiel, das ich geschrieben habe:
```go
package main
import (
"encoding/json"
"fmt"
"strings"
)
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
jsonStr := `{"name": "Alice", "age": 30}`
// Variante 1
var user1 User
err := json.Unmarshal([]byte(jsonStr), &user1)
if err != nil {
fmt.Println("Unmarshal error:", err)
}
fmt.Println(user1)
// Variante 2
var user2 User
decoder := json.NewDecoder(strings.NewReader(jsonStr))
err = decoder.Decode(&user2)
if err != nil {
fmt.Println("Decoder error:", err)
}
fmt.Println(user2)
}
```
Beide Varianten funktionieren gleich. Aber ich habe gelesen, dass `NewD