在 dataweave 表达式的字符串中使用 $

问题描述 投票:0回答:1

我正在编写一个 GraphQL 查询,我必须使用 $like,但我收到一个语法错误:Unexpected from the GraphQl service 我怎样才能像字符串一样使用 $like 而不会出现此错误?

我试试这个:

'funquery(filter:"{\"++ vars.filter++\":{\"$like\":\"++ vars.value ++\"}}") {
#values to get
}'

但这给我带来了来自 dataweave 的错误:无法解析“like”的引用。 所以我尝试这个:

'funquery(filter:"{\"++ vars.filter++\":{\"\$like\":\"++ vars.value ++\"}}") {
#values to get
}'

我得到了语法错误:意外

graphql mule dataweave mulesoft mule4
1个回答
0
投票

我怀疑您正在尝试输出一个 GraphQL 查询来替换变量的值并将它们放在引号之间。如果是这种情况,则脚本中的引号平衡不正确。此外,GraphQL 不是 JSON,因此使用 JSON 作为输出格式可能会破坏引用。尝试使用 application/java 返回带有查询的字符串:

%dw 2.0
output application/java
var varFilter="abc"
var varValue="def"
---
"funquery(filter:{\"" ++ varFilter ++ "\":{\"\$like\":\"" ++ varValue ++ "\"}}) {
#values to get
}"

输出是一个字符串:

funquery(filter:{"abc":{"$like":"def"}}) {
#values to get
}
© www.soinside.com 2019 - 2024. All rights reserved.