У меня проблема с демаршалом. Когда в теле запроса я отправлял connected_id как null, тогда я не сталкивался с какими-либо проблемами. но когда я передаю строку как connected_id, я получаю сообщение об ошибке как json: cannot unmarshal string into Go struct field MarketingEventLink.m_events.linked_id of type map[string]string
Модели:
type PollingGame struct {
LinkedMarketingEvents []MarketingEventLink `json:"m_events,omitempty" bson:"m_events,omitempty"`
}
type MarketingEventLink struct {
LinkedID *objectid.ObjectID `json:"linked_id" bson:"linked_id"`
Position int8 `json:"position" bson:"position"`
//Positive number means "after" and negative is "before". Zero is positive. Numbers may be used later to order the events
}
Тело запроса:
{
"m_events" : [
{
"linked_id" : "5d690c19c20478897f7b089c",
"position" : 1
}
]
}
UnMarshal Logic
func DeserUpdatePoll(request *http.Request) (interface{}, error) {
id := mux.Vars(request)[constants.ID]
updatePollRequest := &model.PollingGame{}
err := json.NewDecoder(request.Body).Decode(updatePollRequest)
if err != nil {
return nil, err
}
updatePollRequest.Id = id
return updatePollRequest, nil
}