从 golang 中的 json 文件中读取一个切片
Read a slice from a json file in golang
如何从 golang 中的 json
文件中读取切片?例如,文件 data.json
如下所示:
["a","b","c","d"]
我曾尝试使用 ioutil.ReadFile
来执行此操作,但此 returns 是一个字符串,而不是切片。我怎样才能阅读我的切片?
注意:您可以将方括号 []
换成大括号 {}
我已经使用结构完成了此操作,但我不希望用户必须输入这种复杂的 json 内容
例如,
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"]
$
如何从 golang 中的 json
文件中读取切片?例如,文件 data.json
如下所示:
["a","b","c","d"]
我曾尝试使用 ioutil.ReadFile
来执行此操作,但此 returns 是一个字符串,而不是切片。我怎样才能阅读我的切片?
注意:您可以将方括号 []
换成大括号 {}
我已经使用结构完成了此操作,但我不希望用户必须输入这种复杂的 json 内容
例如,
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"]
$