• 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": "迁安市","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
    }
    
  • 相关阅读:
    webpack采坑十连跳
    白板编程
    Mysql加锁过程详解(1)-基本知识
    java单例模式几种实现方式
    mysql 幻读的详解、实例及解决办法
    MySQL执行计划extra中的using index 和 using where using index 的区别
    mysql INSERT ... ON DUPLICATE KEY UPDATE语句
    tk mybatis通用mapper,复杂and or条件查询
    tk.mybaits
    docker 笔记
  • 原文地址:https://www.cnblogs.com/lz0925/p/11882939.html
Copyright © 2020-2023  润新知