Make a method that creates a copy of the Player with erasing the relevant 
fields:

type Player struct {
    Id           bson.ObjectId `json:"id,omitempty" bson:"_id,omitempty"`
    CustomField string        `json:"customField,omitempty" 
bson:"customField,omitempty"`
}

func (player Player) Frontend() Player {
player.CustomField = ""
return player
}

On Wednesday, 6 September 2017 00:36:56 UTC+3, Vincent Jouglard wrote:
>
> Hi guys,
>
> I would like to have fields in a custom type that :
> - are not exported when I mashall them (to send to front)
> - are imported when I decode them (from the from)
>
> This is the type :
> type Player struct {
>  Id           bson.ObjectId `json:"id,omitempty" bson:"_id,omitempty"`
>  CustomField string        `json:"-" bson:"customField,omitempty"`
> }
> - 
> - The   `json:"-"` works like a charm, the field is not mashalled when I 
> send the object to the front end but I would like it to be imported when I 
> send an object from to front to the back.
> - 
> - This is the json I send in the request payload :
> - {id: "123456789", customField: "123456"}
> - 
> if err := decoder.Decode(&newPlayer); err != nil {
>     http.Error(w, err.Error(), http.StatusInternalServerError)
>     return
> }
>
> - 
> - 
>
> - 
> - What I get is (due to the  `json:"-"`):
> - Player {
>  Id:132456789
> }
> - 
> Do you know a way to keep the field not sent to the front, but when the 
> front sends one to the back, all fields are decoded ?
> - I could create another type for the decoder, but that would be a code 
> dup and some of my types are quite large...
> - 
> - Thanks !
> - 
> - 
>
>    1. 
>    
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to