Node.js GraphQL js Node/Express:如何在GraphQL查询中传递字符串对象?

Node.js GraphQL js Node/Express:如何在GraphQL查询中传递字符串对象?,node.js,express,graphql-js,Node.js,Express,Graphql Js,我的目标是能够在GraphQL查询中传递字符串对象 目标: { accounts (filter: '{"fieldName": "id", "fieldValues":["123"], "filterType":"in"}'){ id } } 错误: "Syntax Error GraphQL request (1:22) Unexpected single quote character ('), did you

我的目标是能够在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似乎不接受用单引号括起来的字符串

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

示例:

 { 
 "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),
},
模式:

 { 
 "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),
},

您需要在查询字符串中转义双qoutes:

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

谢谢你的意见。不幸的是,这不起作用,因为这仍然需要在客户端更改代码。