如何在graphql方案中迭代json嵌套数组

IT技术 node.js reactjs graphql apollo
2021-05-09 14:35:06

我的 NodeJS Apollo 服务器有以下 JSON 输出:

attributes:
   [ { id: 8,
       name: 'Size',
       position: 0,
       visible: true,
       variation: true,
       options: [Array] } ],

现在我想为此创建一个 graphql 方案。我可以访问所有项目,如 id、位置、可见......但我无法访问的选项。

我该如何为此编写 graphql 方案?目前的方案是:

 const ProductAttributes = `
      type ProductAttributes {
        id: Int!
        name: String!
        position: String!
        visible: Boolean!
        Variation: Boolean!
        // todo Options: [array] ?
      }
    `;

我发现选项数组看起来像这样,但没有分配给它的键:

[ { id: 8,
    name: 'Size',
    position: 0,
    visible: true,
    variation: true,
    options:
     [ 'L32 W35',
       'L32 W36',
       'L32 W37',
       'L32 W38',
       'L28 W22',
       'L28 W23',
       'L28 W24',
       'L28 W25',
       'L32 W34' ] } ]

我是否必须使用 GraphQL 为其分配一个键?还是我必须在我的 NodeJS ajax 请求中执行此操作?

例如:选项:{名称:'L32 W35',名称:'l32 W36'等...

1个回答

如果 [Array] 是对象数组,则需要这样做。

`
type ProductAttributes { 
        id: Int!
        name: String!
        position: String!
        visible: Boolean!
        Variation: Boolean!
        options: [String!] 
}
`

如果 [Array] 是数组的数组,则在每个最后一个内部数组中,对象或字符串都应采用上述方法。您可以处理这些步骤,直到最后一个数组。现在在你的字符串数组中,你可以使用直接的String类型。