package conf import ( "encoding/json" "fmt" "go.uber.org/zap" "os" "sync" ) // 定义结构体用于存储 JSON 内容 type CityDataArray struct { Name string `json:"name"` Value string `json:"value"` } var CityDataMap map[string]string var mutex sync.Mutex // 用于在多线程环境下保护全局变量的互斥锁 // 初始化城市数据 func InitCityData() { // 读取 JSON 文件 jsonData, err := os.ReadFile("./conf/data-array.json") if err != nil { zap.L().Error(fmt.Sprintf("读取 JSON 文件失败:%s", err.Error())) } var cityDataArray []CityDataArray // 解码 JSON 数据到结构体 err = json.Unmarshal(jsonData, &cityDataArray) if err != nil { zap.L().Error(fmt.Sprintf("解码 JSON 数据失败::%s", err.Error())) } CityDataMap = make(map[string]string) for _, city := range cityDataArray { CityDataMap[city.Value] = city.Name } }