• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

go语言怎么从(json后的)多层map中取值

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

// 一个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\": \"迁安市\",\"street\": \"京哈高速公路\",\"street_number\": \"京哈高速公路\"}}}"
	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
}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go 网络数据包分析(3)发布时间:2022-07-10
下一篇:
go结构体定义和结构体指针发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap