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

亲:

我在将unmarshalling这些JSON数据放入包含项目结构的Go切片项目时遇到了一些问题

response := {
      "data": [
        {
          "name": "a",
          "products": [
            {
              "name": "c"
            }
          ]
        },
        {
          "name": "b",
          "products": [
            {
              "name": "d"
            }
          ]
        },
        {
          "name": "c",
          "products": [
            {
              "name": "e"
            }
          ]
        }
      ]
    }

这些是我的结构:

   type Item struct {
     Name string
     Products
    }

    type Products struct {
     Name string
    }

切片基本上应该是转换为Go Items切片的“数据”属性(它是一个数组)的值。我尝试了以下操作,但是我一直得到一个空数组

var items []Item{}
json.Unmarshal(response, &items)
fmt.Println(items)
阿德里安:

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

type Payload struct {
    Data []Item
}

var payload Payload
json.Unmarshal(response, &payload)
fmt.Println(payload.Data)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章