Go में JSON POST अनुरोध को सही तरीके से कैसे संसाधित करें?
सभी को नमस्कार! मैंने अभी Go सीखना शुरू किया है और एक सरल REST API सर्वर लिख रहा हूँ। मुझे POST अनुरोधों में JSON प्रसंस्करण की समस्या का सामना करना पड़ा।
मेरे पास User संरचना है:
```go
type User struct {
Name string
Age int
}
```
और हैंडलर:
```go
func createUser(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
return
}
var user User
err := json.NewDecoder(r.Body).Decode(&user)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
fmt.Fprintf(w, "User: %+v", user)
}
```
जब मैं curl के माध्यम से POST अनुरोध भेजता हूँ:
```
curl -X POST -H "Content-Type: application/json" -d '{"name":"John","age":30}' http://localhost:8080/user
```
मुझे एक खाली ऑब्जेक्ट मिलता है: `User: {Name: Age:0}`। मैं क्या गलत कर रहा हूँ? फ़ील्ड क्यों नहीं भर रहे हैं? मैंने जाँच की कि अनुरोध का बॉडी आ रहा है — यदि मैं r.Body को स्ट्रिंग के रूप में आउटपुट करूँ,