Почему мой сервер Go неправильно декодирует JSON, отправляемый клиентом? - PullRequest
0 голосов
/ 22 мая 2018

Я работаю над написанием сервера на Go для проекта, который включает получение данных JSON от клиента и отправку ответа JSON.Когда я запускаю код, любой мой запрос работает правильно, но ответ всегда пуст.Вот код моего сервера.

type AddPlayerData struct {
    name string
}

func main() {
    router := mux.NewRouter()
    router.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Println("[ SUCCESS ] Request from ", r.RemoteAddr)
        decoder := json.NewDecoder(r.Body)
        var data AddPlayerData
        err := decoder.Decode(&data)
        if err != nil {
            panic(err)
        }
        defer r.Body.Close()

        json.NewEncoder(w).Encode(data)
    }).Methods("PUT");

    log.Fatal(http.ListenAndServe(":8080", router))
}

Отправляемые мной запросы представляют собой запросы PUT, отформатированные следующим образом:

{
    "name": "test-player"
}

Я получаю ответ, но он всегда пуст.

1 Ответ

0 голосов
/ 22 мая 2018

Здесь проблема заключается в кодировке JSON.AddPlayerData struct должна экспортировать свои поля в порядке, чтобы json-декодер / кодировщик работал.

Измените вашу структуру ниже

type AddPlayerData struct {
    Name string `json:"name"`
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...