You can unmarshal into a map[string]string
for example:
m := map[string]string{}
err := json.Unmarshal([]byte(input), &m)
if err != nil {
panic(err)
}
fmt.Println(m)
Output (wrapped):
map[Bangalore_City:35_Temperature NewYork_City:31_Temperature
Copenhagen_City:29_Temperature]
Try it on the Go Playground.
This way no matter what the keys or values are, you will have all pairs in a map
which you can print or loop over.
Also note that although your example contained only string
values, but if the value type is varying (e.g. string
, numbers etc.), you may use interface{}
for the value type, in which case your map would be of type map[string]interface{}
.
Also note that I created a library to easily work with such dynamic objects which may be a great help in these cases: github.com/icza/dyno
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…