go语言json转map

package util

import (
	"encoding/json"
	"fmt"
)
// json转map函数,通用
func JSONToMap(str string) map[string]interface{} {

	var tempMap map[string]interface{}

	err := json.Unmarshal([]byte(str), &tempMap)

	if err != nil {
		panic(err)
	}

	return tempMap
}
  • 如果map中含有数组,并且数组中是数字,需要求和,如何去做
rain = "{"reqTime":"201911141554","startTime":"201911141555","endTime":"201911141755","series":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07,0.14,0.32,0.51,0.72,0.92,1.11,1.28,1.41,1.5,1.53,1.5,1.41,1.28,1.11,0.92,0.72,0.51,0.32,0.14,0.07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"amendNow":"多云","amendNowwen":"Cloudy","amendNowwcode":"01","msg":"1小时后会有雪,出门记得带伞"}"
	fmt.Println(rain)
	// Json转map,  map[string]interface{}
	rainMap := util.JSONToMap(rain)    // 
	// 降雨量之和
	sum := 0.00
	// 遍历map中的series数组,降雨量相加
	for _, num := range rainMap["series"].([]interface{}) {
		sum += num.(float64) // 这里使用断言
	}
        fmt.Println(sum)   // 结果为 17.490000000000002
原文地址:https://www.cnblogs.com/lz0925/p/11836549.html