aah. Damn it :-) Thanks a lot. I am hitting myself for missing this.

2017-08-09 16:40 GMT+05:30 Jakob Borg <ja...@kastelo.net>:

> On 9 Aug 2017, at 12:26, Sankar <sankar.curios...@gmail.com> wrote:
> >
> > Now for the same, Item object, the json.Marshal function returns two
> different strings for the `Item` object.
> >
> > If you run the playground url, you will find that:
> >
> > {"Items":[{"SD":"2009-11-10T23:00"}]}
> > {"Item":{"SD":"2009-11-10T23:00:00Z"}}
> >
> > are two different outputs (notice the "seconds" and the "Z" in the
> second line). I expected both the lines to print the same output for "SD"
> as the same object is re-used for them both.
> >
> > Now, should I define MarshalJson and UnmarshalJSON function for the
> []Item too (after making it a custom struct) ?
> >
> > Or is this a bug, or do I misunderstand anything ?
>
> The issue is that you have defined MarshalJSON as a method with a pointer
> receiver, while the JSON marshaller will access it through an interface
> value that is not addressable. Instead, declare the MarshalJSON method with
> a value receiver:
>
> func (ct CustomTime) MarshalJSON() ([]byte, error) { ... }
>
> //jb
>
>


-- 
Sankar P
http://psankar.blogspot.com

-- 
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