GraphQL-js Node / Express:如何在GraphQL Query中传递一个弦乐对象?

我的目标是能够在GraphQL查询中传递一个弦乐对象。

目标:

{ accounts (filter: '{"fieldName": "id", "fieldValues":["123"], "filterType":"in"}'){ id } } 

错误:

 "Syntax Error GraphQL request (1:22) Unexpected single quote character ('), did you mean to use a double quote (\")?" 

问题是GraphQL似乎不接受用单引号包围的string。

在对象中使用单引号是不可能的,因为这将需要对编译这些对象的客户端进行重大更改。

例:

  { "fieldName": "id", "fieldValues":["123"], "filterType":"in" } 

架构:

  accounts: { type: new GraphQLList(accountType), args: { id: { type: GraphQLString }, status: { type: GraphQLString }, filter: { type: GraphQLString }, sort: { type: GraphQLString }, }, resolve: (root, args, { loaders }) => loaders.account.load(args), }, 

你需要在query-string里面使用双重转义string:

  { accounts ( filter: "{\"fieldName\":\"id\",\"fieldValues\":[\"123\"],\"filterType\":\"in\"}" ){ id } }