2016-03-30 7 views
1

として文字列を使用して、次のJSONを非整列化するための最良の方法は、私は、JSONのようなGolang:キー

{ 
    "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 
    } 
} 

を持っている私は

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"` 
} 

を非整列化するために、次の構造体を使用することができますが、私の町の名前と番号は異なるだろう各応答は、どのような最良の方法は、キーを文字列にすることができますこの種類のjsonを非整列化するさまざまです。 (あなたはそれがJSONでcitiesと呼ばれていますが)

答えて

7

私はlocationsマップになるだろう:それは完全に働いた

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

素晴らしい、ありがとうございます! +1 –