json.Unmarshal बनाम json.NewDecoder.Decode: Go में JSON पार्स करने के लिए क्या चुनें?
सभी को नमस्ते! मैंने अभी-अभी Go सीखना शुरू किया है और JSON को पार्स करने के लिए `json.Unmarshal` और `json.NewDecoder.Decode` के बीच चयन करने की समस्या का सामना किया। दोनों विधियाँ एक ही काम करती हैं — JSON को struct में डिकोड करना, लेकिन दस्तावेज़ में लिखा है कि कुछ बारीकियाँ हैं।
यहाँ एक उदाहरण है जो मैंने लिखा:
```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}`
// विकल्प 1
var user1 User
err := json.Unmarshal([]byte(jsonStr), &user1)
if err != nil {
fmt.Println("Unmarshal error:", err)
}
fmt.Println(user1)
// विकल्प 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)
}
```
दोनों विकल्प समान रूप से काम करते हैं। लेकिन मैंने पढ़ा कि `NewD