首页 > 解决方案 > 在 GraphQL 中,如何在查询级别丢弃空数组(之后不循环)

问题描述

背景

我有一个通过 GraphQL 获得的菜单。它最多可以在 2 个级别内包含嵌套项。当我检索数据时,如果没有子链接,我会得到空数组。

询问

我的查询看起来像这样

{
  label
  url
  links {
    label
    url
    links {
      label
      url
    }
  }
}

因此,在每个级别上,都有可能在下面有一系列附加链接。

数据

当我检查数据时,它看起来像这样

{
  "data": {
    "menu": [
      {
        "label": "menu item 1",
        "url": "https://my-site",
        "links": []
      },
      {
        "label": "menu item 2",
        "url": "https://my-site/2",
        "links": []
      },
      {
        "label": "menu item with sub items",
        "url": "https://my-site/got-subs",
        "links": [
          {
            "label": "sub menu item 1",
            "url": "https://my-site/got-subs/1",
            "links": []
          },
          {
            "label": "sub menu item 2",
            "url": "https://my-site/got-subs/2",
            "links": []
          }
        ]
      },
    ]
  }
}

问题

如何在查询级别删除空数组,使我的数据看起来像这样?

{
  "data": {
    "menu": [
      {
        "label": "menu item 1",
        "url": "https://my-site",
      },
      {
        "label": "menu item 2",
        "url": "https://my-site/2",
      },
      {
        "label": "menu item with sub items",
        "url": "https://my-site/got-subs",
        "links": [
          {
            "label": "sub menu item 1",
            "url": "https://my-site/got-subs/1",
          },
          {
            "label": "sub menu item 2",
            "url": "https://my-site/got-subs/2",
          }
        ]
      },
    ]
  }
}

标签: graphql

解决方案


推荐阅读