123456789101112131415161718192021222324252627282930313233343536373839 |
- 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
- }
- }
|