为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 Golang 中的字符串文字创建映射变量?

如何从 Golang 中的字符串文字创建映射变量?

Go
九州编程 2022-11-08 16:26:25

我有一个准备好的地图结构作为字符串文字。注意,它不是 JSON!(查看块的最后一个元素中的逗号)


dict := `{

    "ru": {

        "test_key": "Тестовый ключ",

        "some_err": "Произошла ошибка",

    },

    "en": {

        "test_key": "Test key",

        "some_err": "Error occurs",

    },

}`

我想将此字符串转换为地图类型的实际值(map[string]map[string]string)。我需要它进行测试。可能吗?


查看完整描述

1 回答

?
智慧大石

TA贡献1720条经验 获得超3个赞

如果这只是为了测试,我会从源字符串中删除“不需要的”逗号并使用 JSON 解组。


要删除不需要的逗号:我会使用 regexp ,\s*},并将其替换为单个}.


例如:


dict = regexp.MustCompile(`,\s*}`).ReplaceAllLiteralString(dict, "}")


var m map[string]map[string]string

if err := json.Unmarshal([]byte(dict), &m); err != nil {

    panic(err)

}

fmt.Println(m)

输出(在Go Playground上试试):


map[en:map[some_err:Error occurs test_key:Test key] ru:map[some_err:Произошла ошибка test_key:Тестовый ключ]]



查看完整回答
反对 回复 2022-11-08
  • 1 回答
  • 0 关注
  • 19 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信