You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamsets中Groovy Evaluator构建JSON对象报错求助

解决Streamsets Groovy Evaluator构建JSON的编译错误

错误根源

编译错误是因为你构建filter字符串时,没有正确处理字符串边界,Groovy把字符串里的and当成了代码逻辑运算符,而非字符串内容,导致语法解析失败。

正确实现方案

推荐用Groovy的Map结构来构造目标JSON,再转为字符串,这种方式不用手动处理繁琐的引号转义:

// 构造对应结构的Map
def queryConfig = [
    filter: "(equals(type,'my/specific/Type') and equals(attributes.number, '1234') and equals(attributes.status,'ACTIVE'))",
    max: 10
]

// 转换为JSON字符串(用Streamsets环境自带的Jackson工具)
def jsonResult = com.fasterxml.jackson.databind.ObjectMapper.newInstance().writeValueAsString(queryConfig)

// 将结果输出到后续阶段
output = jsonResult

如果偏好直接拼接字符串,可用Groovy的三重双引号包裹多行字符串(自动处理内部引号,无需转义):

def jsonStr = """
{
    "filter": "(equals(type,'my/specific/Type') and equals(attributes.number, '1234') and equals(attributes.status,'ACTIVE'))",
    "max": 10
}
""".trim()

output = jsonStr

额外提示

  • 你原示例里的filter字符串最后少了一个闭合括号,上面的代码已补全,避免后续JSON解析出错。
  • Streamsets Groovy Evaluator必须将最终结果赋值给output变量,才能把数据传递到下一个组件。

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 10:15:39