【问题标题】:Read a slice from a json file in golang从 golang 中的 json 文件中读取切片
【发布时间】:2016-07-07 06:25:56
【问题描述】:

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

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

我曾尝试使用ioutil.ReadFile 来执行此操作,但这会返回一个字符串,而不是一个切片。如何阅读我的切片?
注意:您可以将括号 [] 替换为大括号 {}
我已经使用结构完成了这项工作,但我不希望用户必须输入这些复杂的 json 内容

【问题讨论】:

  • 不一定是 json。我只是想让它工作:)
  • 修复了!现在好了吗?

标签: json go slice


【解决方案1】:

例如,

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"]
$

【讨论】:

  • 如果文件很大,你可能应该提到使用json.NewDecoder,因为它会更有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 2018-06-18
  • 2018-08-22
  • 2019-10-17
  • 2018-12-25
  • 2021-11-22
  • 2013-12-10
相关资源
最近更新 更多