【发布时间】:2021-08-29 23:27:00
【问题描述】:
所以在 Go 中我有以下字符串
["item1", "item2", "item3"]
我想把这个字符串变成一个包含每个项目的列表。解决此问题的最佳方法是什么?抱歉,我还在学习 Go,但找不到类似的信息
【问题讨论】:
-
字符串是Json,字符串是json项的数组,我想把它变成一个字符串到接口的go映射。
标签: arrays string go type-conversion
所以在 Go 中我有以下字符串
["item1", "item2", "item3"]
我想把这个字符串变成一个包含每个项目的列表。解决此问题的最佳方法是什么?抱歉,我还在学习 Go,但找不到类似的信息
【问题讨论】:
标签: arrays string go type-conversion
如果您的字符串是 JSON(如 cmets 建议的那样),具有相同类型对象的顶级列表;您可以使用标准库中的encoding/json 来解析并简单地将其解组为您的 Go 结构类型的切片,如下所示:
package main
import (
"encoding/json"
"fmt"
)
type Data struct {
Name string
Foo []string `json:"foo"`
}
func main() {
// Unmarshall to slice
var data []Data
// Your string with list of objects
input := `[{"name": "first", "foo":["item1", "item2", "item3"]}, {"name": "second", "foo":["item5", "item6"]}]`
err := json.Unmarshal([]byte(input), &data)
if err != nil {
panic(err)
}
fmt.Println(data)
}
我推荐阅读JSON and Go,它几乎解释了如何在 Go 中阅读 JSON。
【讨论】: