无法在Golang中解析JSON数组

时间:2015-03-20 11:00:40

标签: json go decoding

我很难解析以下JSON数组。

// JSON Array
[      
  {
    "ShaId": "adf56a4d",
    "Regions": [
      {
        "Name": "us-east-1a"
      }
    ]
  }
 .... more such
]     

Go Goground的链接: - https://play.golang.org/p/D4VrX3uoE8

我在哪里弄错了?

1 个答案:

答案 0 :(得分:2)

这是您原来的JSON输入:

content := `{"ShaId": "adf56a4d", "Regions": [{"Name": "us-east-1a"}]}`

它不是数组,请将其更改为:

content := `[{"ShaId": "adf56a4d", "Regions": [{"Name": "us-east-1a"}]}]`

有了这个,结果:

Results: []main.ShaInfo{main.ShaInfo{ShaId:"adf56a4d",
                Regions:main.Region{struct { Name string }{Name:"us-east-1a"}}}}

注意:

如果您输入的不是数组,则不要尝试解析数组(切片),只需一个ShaInfo。如果您不能/不能修改输入,这也有效:

var data ShaInfo
content := `{"ShaId": "adf56a4d", "Regions": [{"Name": "us-east-1a"}]}`
json.Unmarshal([]byte(content), &data)

输出:

Results: main.ShaInfo{ShaId:"adf56a4d",
              Regions:main.Region{struct { Name string }{Name:"us-east-1a"}}}