On Mon, Dec 3, 2018 at 9:06 AM Jeffrey Smith <jeffreysmith19...@gmail.com> wrote: > > That is 99% of what I'm after cheers. > > I need to be able to set the _doc bit to be any random string if possible as > its the type name. > > `json:"_doc"`
Nested maps are messy to deal with. In my opinion, your best bet is a custom marshaler: type Doc struct { Tag string Properties ... } func (d Doc) MarshalJSON() ([]byte,err) { m:=map[string]interface{}{d.Tag:map[string]interface{}{"properties":d.Properties}} return json.Marshal(m) } I didn't test the syntax, but it should give you the idea. > > On Monday, December 3, 2018 at 3:53:34 PM UTC, Burak Serdar wrote: >> >> On Mon, Dec 3, 2018 at 8:27 AM Jeffrey Smith >> <jeffreys...@gmail.com> wrote: >> > >> > I'm trying to set mapping in elastic search in go and want to generate >> > something like this. >> > >> > { "mappings": { "_doc": { "properties": { "title": { "type": "text", >> > "store": true }, "date": { "type": "date", "store": true }, "content": { >> > "type": "text" } } } } } >> > >> >> Is this close to what you're trying to do: >> >> https://play.golang.org/p/wYOwf6wUai7 >> >> > >> > The _doc, title,date and content are all keys that will change depending >> > on what mapping I am trying to generate. >> > >> > I have a basic struct layout but cant work out how to generate the proper >> > JSON. >> > >> > type mappingData struct { >> > Mappings struct { >> > Doc struct { >> > Properties struct { >> > Elements []Fields >> > } `json:"properties"` >> > } `json:"_doc"` >> > } `json:"mappings"` >> > } >> > >> > >> > type Fields struct { >> > Type string `json:"type"` >> > Store bool `json:"store"` >> > } >> > >> > _doc will be from a string and I have a vector of structs that has >> > different fields in. >> > >> > -- >> > 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...@googlegroups.com. >> > For more options, visit https://groups.google.com/d/optout. > > -- > 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. -- 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.