小编典典

Golang将JSON数组解析为数据结构

go

我正在尝试解析一个包含JSON数据的文件:

[
  {"a" : "1"},
  {"b" : "2"},
  {"c" : "3"}
]

由于这是带有动态键的JSON数组,因此我认为我可以使用:

type data map[string]string

但是,我无法使用来解析文件map

c, _ := ioutil.ReadFile("c")
dec := json.NewDecoder(bytes.NewReader(c))
var d data
dec.Decode(&d)


json: cannot unmarshal array into Go value of type main.data

将包含JSON数据的文件解析为Go结构的最简单方法是将数组(仅字符串类型转换为字符串类型)?

编辑: 要进一步详细说明可接受的答案-的确,我的JSON是地图数组。为了使我的代码正常工作,该文件应包含:

{
  "a":"1",
  "b":"2",
  "c":"3"
}

然后可以将其读入 map[string]string


阅读 320

收藏
2020-07-02

共1个答案

小编典典

这是因为您的json实际上是一个地图数组,但是您试图将其分解为一个map。尝试使用以下内容:

type YourJson struct {
    YourSample []struct {
        data map[string]string
    } 
}
2020-07-02