Thank you!! That worked brilliantly!

On Monday, January 30, 2017 at 10:39:56 AM UTC-5, Konstantin Khomoutov 
wrote:
>
> On Mon, 30 Jan 2017 07:14:23 -0800 (PST) 
> Rich <rma...@gmail.com <javascript:>> wrote: 
>
> > If I have JSON that looks like this: 
> [...] 
> > > My question is that the JSON I have to parse the IPAddr is not 
> > > always the 
> > same. AND there are 50+ IPAddr= blocks... For example: 
> > 
> > > { 
> > >    "value" :  { 
> > >       "IPAddr=10.1.1.12" : { 
> > >          "ReplyTime" : { 
> [...] 
> > >          } 
> > >       }, 
> > >       "IPAddr=10.1.1.145" : { 
> >          "ReplyTime" : { 
> [...] 
> >          } 
> >       } (Keep adding blocks after this....) 
>
> Your "value" field can be naturally represented as a map of keys 
> of the form "IPAddr=whatever" to structures of certain type 
> (IpAddress), so just do that [1]: 
>
> ---------------->8---------------- 
>     package main 
>     
>     import ( 
>             "encoding/json" 
>             "fmt" 
>     ) 
>     
>     type IpAddress struct { 
>             ReplyTime struct { 
>                     AverageTime int `json:"averageTime"` 
>                     MaxTime     int `json:"maxTime"` 
>                     MinTime     int `json:"minTime"` 
>             } `json:"ReplyTime"` 
>     } 
>     
>     type Data struct { 
>             Value map[string]IpAddress `json:"value"` 
>     } 
>     
>     const s = `{ 
>             "value": { 
>                     "IPAddr=10.1.1.145" : { 
>                             "ReplyTime" : { 
>                                     "minTime" : 42, 
>                                     "maxTime" : 123, 
>                                     "averageTime" : 12 
>                             } 
>                     }, 
>                     "IPAddr=10.1.1.146" : { 
>                             "ReplyTime" : { 
>                                     "minTime" : 111, 
>                                     "maxTime" : 32, 
>                                     "averageTime" : 15 
>                             } 
>                     } 
>             } 
>     }` 
>     
>     func main() { 
>             var d Data 
>             err := json.Unmarshal([]byte(s), &d) 
>             if err != nil { 
>                     panic(err) 
>             } 
>             fmt.Printf("%v\n", d) 
>     } 
> ---------------->8---------------- 
>
> You can then iterate over the map to enumerate those key/value pairs. 
>
> 1. https://play.golang.org/p/xmrTXb3SFL 
>

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