如何为字符串和数字列表定义 GraphQLType?

How to define a GraphQLType for a list of strings and numbers?

我在服务器上有一个如下所示的对象:

{ data: [[1,"asds"], [4, "ssd", [94, "Ads"]] }

我如何在 GraphQL 中定义一个类型(使用 graphql.js)来描述这个?基本上类似于 GraphQLList(GraphQLString | GraphQLInt).

这可能吗?

谢谢,

您可以尝试使用 GraphQLScalarType 来接受任何值:

var AnyValueScalar = new graphql.GraphQLScalarType({
  name: 'AnyValueScalar',
  serialize: anyValue,
  parseValue: anyValue,
  parseLiteral(ast) {
      return anyValue(ast.value);
  }
});

function anyValue(value) {
  return value
}

定义查询类型字段数据

var queryType = new graphql.GraphQLObjectType({
  name: 'Query',
  fields: {
    data: {
      type: AnyValueScalar,
      resolve: function(_,args){
        return [[1,"asds"], [4, "ssd", [94, "Ads"]]]
      }
    }
  }
});

如果您在 QraphiQL 中查询如下

query {
  data
}

应该有结果

{
  "data": {
    "data": [
      [
        1,
        "asds"
      ],
      [
        4,
        "ssd",
        [
          94,
          "Ads"
        ]
      ]
    ]
  }
}