go语⾔怎么从(json后的)多层map中取值
// ⼀个PHP中的多层关联数组,即Go中的多层map,如何从json字符串中解析,然后取到map中的某个具体的值。
// 数据结构如下:
cityInfo := "{
"status": 0,
"result": {
"location": {
"lat": 39.88,
"lng": 118.69
},
"address": "河北省唐⼭市迁安市京哈⾼速公路",
"address_component": {
"nation": "中国",
"province": "河北省",
"city": "唐⼭市",
"district": "迁安市",
"street": "京哈⾼速公路",
"street_number": "京哈⾼速公路"
},
}
}"
// 我们这⾥取 cityInfo["result"]["address_component"]["district"] 这个值,即:迁安市
/
/ 我们使⽤的数据为json后的map, 内容与上⾯展⽰的完全相同,所以需要先从json解析到map
cityInfo := "{\"status\": 0,\"result\": {\"location\": {\"lat\": 39.88,\"lng\": 118.69},\"address\": \"河北省唐⼭市迁安市京哈⾼速公路\",\"address_component\": {\"nation\": \"中国\",\"province\": \"河北省\",\"city\": \"唐⼭市\",\"district\": \"迁安市\",\"st fmt.Println(cityInfo)
cityInfoMap := util.JSONToMap(cityInfo)
fmt.Println(cityInfoMap)
cityName, ok := cityInfoMap["result"].(map[string]interface{})["address_component"].(map[string]interface{})["district"]
fmt.Println(cityName) // 这⾥会输出迁安市,取到对应的值,OK
// 上述代码中util.JSONToMap()⽅法的代码如下, 随便放到⼀个package中,然后引⽤即可,此处我放⼊到util包中。
// json转Map ()
func JSONToMap(str string) map[string]interface{} {
var tempMap = make(map[string]interface{})
err := json.Unmarshal([]byte(str), &tempMap)
if err != nil {
panic(err)
}
return tempMap
go语言字符串转数组}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论