我的json数组中有以下内容(conf.json文件)。
{
"Repos": [
"a",
"b",
"c"
]
}
我试图读取这个json然后迭代它但是卡住了。我很新(去编程),所以我很难理解这里发生了什么。
import (
"encoding/json"
"fmt"
"os"
)
type Configuration struct {
Repos []string
}
func read_config() {
file, _ := os.Open("conf.json")
decoder := json.NewDecoder(file)
configuration := Configuration{}
err := decoder.Decode(&configuration)
if err != nil {
fmt.Println("error:", err)
}
fmt.Println(configuration.Repos)
}
到目前为止,这是我能够得到的。这将打印好的值[a, b, c]
。
我想要做的是能够迭代数组并单独拆分每个值但是没有运气这样做。我采取了错误的做法吗?有更好的方法吗?
答案 0 :(得分:1)
你的意思是这样的:
for _, repo := range configuration.Repos {
fmt.Println(repo)
}
请注意,示例中的代码不适用于您提供的JSON。 value
和Repos
之间没有映射。您要么在Configuration
结构上发布了错误的JSON或省略了标记,要正确映射它。
答案 1 :(得分:0)
一切都很好,只是你的印刷没有达到预期的效果。由于Repos是一个数组,您必须迭代它以单独打印每个值。试试这样的事情;
for _, repo := range configuration.Repos {
fmt.Println(repo)
}