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

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


dict := `{

    "ru": {

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

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

    },

    "en": {

        "test_key": "Test key",

        "some_err": "Error occurs",

    },

}`

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


九州编程
浏览 93回答 1
1回答

智慧大石

如果这只是为了测试,我会从源字符串中删除“不需要的”逗号并使用 JSON 解组。要删除不需要的逗号:我会使用 regexp ,\s*},并将其替换为单个}.例如:dict = regexp.MustCompile(`,\s*}`).ReplaceAllLiteralString(dict, "}")var m map[string]map[string]stringif 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:Тестовый ключ]]
打开App,查看更多内容
随时随地看视频慕课网APP