2016-03-30 7 views
1

Ich habe json wieGolang: bester Weg, folgende json mit String als Schlüssel zu entpacken

{ 
    "api_type" : "abc", 
    "api_name" : "xyz", 
    "cities" : { 
    "new_york" : { 
     "lat":"40.730610", 
     "long":"-73.935242" 
    }, 
    "london" : { 
     "lat":"51.508530", 
     "long":"-0.076132" 
    }, 
    "amsterdam" : { 
     "lat":"52.379189", 
     "long":"4.899431" 
    } 

    //cities can be multiple 
    } 
} 

I Struktur entpacken

folgenden verwenden kann
type MyJsonName struct { 
    APIName string `json:"api_name"` 
    APIType string `json:"api_type"` 
    Locations struct { 
     Amsterdam struct { 
      Lat string `json:"lat"` 
      Long string `json:"long"` 
     } `json:"amsterdam"` 
     London struct { 
      Lat string `json:"lat"` 
      Long string `json:"long"` 
     } `json:"london"` 
     NewYork struct { 
      Lat string `json:"lat"` 
      Long string `json:"long"` 
     } `json:"new_york"` 
    } `json:"locations"` 
} 

aber meine Stadt Namen und Nummern werden anders sein, in Jede Antwort, was ist die beste Art und Weise, diese Art von Json zu entlarven, wo Schlüssel Zeichenfolge sein kann, die variiert.

Antwort

7

würde ich die locations Karte machen (obwohl Sie es cities im JSON genannt haben):

type MyJsonName struct { 
     APIName string `json:"api_name"` 
     APIType string `json:"api_type"` 
     Locations map[string]struct { 
       Lat string 
       Long string 
     } `json:"locations"` 
} 
+0

Ehrfürchtig es funktionierte perfekt, vielen Dank! +1 –