我正在尝试解析一个类似 json 的字符串,如下所示。"abc:9, bar:3"我希望最后得到的是map[string]int这样的:map[string]int{"abc":9, "bar":3}我已经将它分成一组“对”,如下所示:`[“abc:9”,“条:3”]我正在努力思考如何将这种结构带入决赛map[string]int。我尝试过在切片上进行范围调整,但我不知道如何将其实际放入地图中。 val := "abc:9, bar:3" lsd := make(map[string]int) c := strings.Split(val, ",") for k, v := range c { lsd = v[k] // where I am struggling, I know this is wrong, but I can't seem to find the proper syntax and tools for this }谁能给我指出正确的方向,以最终得到我在这里寻找的map[string]int?
1 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
这有点俗气,但我在制作 fmt.Sscanf 时遇到了困难,所以我只是再次分裂。而你可能已经错过了strconv——strconv.Atoi一个快速转换器。
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
lsd := make(map[string]int)
toParse := "abc:5, foo:5"
parts := strings.Split(toParse, ", ")
for _, p := range parts {
results := strings.SplitN(p, ":", 2)
val, err := strconv.Atoi(results[1])
if err != nil {
panic(err) //probably want to do somethig better
}
lsd[results[0]] = val
}
fmt.Printf("%#v", lsd)
}
地图[字符串] int {“abc”:5,“foo”:5}
https://play.golang.org/p/UadibEzTXWU
- 1 回答
- 0 关注
- 122 浏览
添加回答
举报
0/150
提交
取消