Why not provide a "NewFoo() *Foo" function 
instead? https://play.golang.org/p/GE8cMgwe24

On Monday, March 27, 2017 at 10:42:46 AM UTC-6, traetox wrote:
>
> Hello all,
>
> I have swept through the list and gone through the pkg/encoding/json 
> package and _believe_ I haven't missed anything, but am not 100% sure.
>
> When encoding structures into JSON which contain slices/arrays/maps my 
> frontend devs consistently complain about the encoding of empty or nil 
> members which they have to do a little extra work to deal with.
>
> For example, structure is defined as:
>
> type Foo Struct {
>      Bar []string
>      Baz map[string]int
> }
>
> if any of the members of the struct (Bar, Baz) are not initialized, or 
> empty the encoding is:
>
> {
>     "Bar": null,
>     "Baz": null,
> }
>
> What they want is :
>
> {
>     "Bar": [],
>     "Baz": {},
> }
>
> The frontend guys complain because they can't just hand that structure to 
> some of their libraries.  I have been getting around this by defining 
> custom marshallers for each type which detect empty or null items and 
> marshal them out as '[]' and '{}' respectively.  I know the other option is 
> to just ensure an empty map/slice/array is initialized but invoking 
> potential allocations and GC seems wasteful.  Is there a json directive 
> that can be attached that tells the standard library marshaller to always 
> render empty items into a '[]', '{}', etc. similar to the *omitempty *
>  directive?
>
> If not, would there be any support for me to propose, develop, and submit 
> a patch to do so?
>
> As always, thank you all for the great work on Golang and the standard 
> library!
> Kris
>

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