从golang中的json文件中读取一个切片

时间:2016-03-20 20:40:13

标签: json go slice

如何从golang中的json文件中读取切片?例如,文件data.json如下所示:

["a","b","c","d"]

我尝试使用ioutil.ReadFile来执行此操作,但这会返回一个字符串,而不是切片。我怎样才能看到我的切片? 注意:您可以为括号[]添加括号{} 我使用结构来完成这个,但我不希望用户必须输入这个复杂的json东西

1 个答案:

答案 0 :(得分:5)

例如,

package main

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
)

func main() {
    data, err := ioutil.ReadFile("data.json")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Print("data:  ",string(data))
    var slice []string
    err = json.Unmarshal(data, &slice)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Printf("slice: %q\n",slice)
}

输出:

$ cat data.json
["a","b","c","d"]
$ go run data.go
data:  ["a","b","c","d"]
slice: ["a" "b" "c" "d"]
$
相关问题