替换graphql中的占位符忽略枚举和字符串

替换graphql中的占位符忽略枚举和字符串,graphql,karate,Graphql,Karate,我正在读取graphql查询并将其存储在变量中,然后在存储的graphql中替换变量。替换是字符串化的,尽管中有一个枚举 query() { blabla( varToReplace: < varToReplace > queryOptions: {} ) { boemba { id ) } } } 但实际执行的查询不仅包含在对象的匹配键中,还包含“ONLY”,即字符串化值 query() { blabla(

我正在读取graphql查询并将其存储在变量中,然后在存储的graphql中替换变量。替换是字符串化的,尽管中有一个枚举

query() {
  blabla(
    varToReplace: < varToReplace >
    queryOptions: {}
  ) {
    boemba {
      id
      )
    }
  }
}
但实际执行的查询不仅包含在对象的匹配键中,还包含“ONLY”,即字符串化值

query() {
  blabla(
    varToReplace: [{"value":"boemba", "matching":"ONLY"}]
  ) {
    boemba {
      id
      )
    }
  }
}

有没有一种方法可以让被替换的值与提供的值完全相似,而不是全部字符串化?

关键字
replace
处理纯字符串,并且不支持Java或JS类型。所以试试这个(注意单引号):

请注意,如果内置的
replace
不适合您,您可以编写自己的JS实用程序函数(甚至Java)

query() {
  blabla(
    varToReplace: [{"value":"boemba", "matching":"ONLY"}]
  ) {
    boemba {
      id
      )
    }
  }
}
* replace query.varToReplace = '[{ value: "boemba", matching: ONLY }]'