解组嵌套在Go中的JSON对象内的数组

pro*_*pro -2 go

我有一些问题unmarshalling这个JSON数据到包含项目结构的项目的Go(Golang)切片:

response := {
      "data": [
        {
          "name": "a",
          "products": [
            {
              "name": "c"
            }
          ]
        },
        {
          "name": "b",
          "products": [
            {
              "name": "d"
            }
          ]
        },
        {
          "name": "c",
          "products": [
            {
              "name": "e"
            }
          ]
        }
      ]
    }
Run Code Online (Sandbox Code Playgroud)

这些是我的结构:

   type Item struct {
     Name string
     Products
    }

    type Products struct {
     Name string
    }
Run Code Online (Sandbox Code Playgroud)

切片基本上应该是转换为Go Items切片的"data"属性(它是一个数组)的值.我尝试了下面的内容,但我不断得到一个空数组

var items []Item{}
json.Unmarshal(response, &items)
fmt.Println(items)
Run Code Online (Sandbox Code Playgroud)

Adr*_*ian 5

您正试图将JSON解组为切片,但该JSON的根是一个对象(您可以告诉,因为JSON以a开头{,表示对象的开始).您需要考虑该外层:

type Payload struct {
    Data []Item
}

var payload Payload
json.Unmarshal(response, &payload)
fmt.Println(payload.Data)
Run Code Online (Sandbox Code Playgroud)